Получать имя с более высоким значением консультации Скл Сервер

Хороший день. У меня есть пластина в Скл Сервер, которого Вы содержите Id, Nombre, Numero. Имена могут повторяться, но у каждого будет один id уникум, я нуждаюсь в том, чтобы получить имена, у которых есть число (Phone) больше.

Я присоединяю образы для того, чтобы Вы были яснее. introducir la descripción de la imagen aquí

это - то, в чем я нуждаюсь introducir la descripción de la imagen aquí

Что мне нужно, чтобы Вы были больше, Вы колонна Phone и что показали Вам три колонны.

Так Вы я функционируете, но мне не нравится ничто мысль сравнивать по имени.

SELECT C.ShipperId, C.Shippername, C.Phone
FROM (
  SELECT MAX(A.Phone) AS Phone, A.shippername
  FROM table A
  GROUP BY A.shippername) B
JOIN table C
ON B.phone = C.phone
and B.shippername = C.shippername

3
задан 20.10.2016, 03:13
4 ответа

"window function" row_number() будь разработан точно для этого типа ситуаций:

select t.ShipperID, t.ShipperName, t.Phone
  from (select t.*,
               row_number() over (partition by t.ShipperName order by t.Phone desc) as rn
          from tbl t) t
 where t.rn = 1
3
ответ дан 24.11.2019, 13:02

Ты можешь получать самые высокие Ids со следующей консультацией:

SELECT TOP 2 * FROM Tabla
ORDER BY ShipperId DESC

С этим, результат рукоположен несовершеннолетнему большего и ты выбираешь два реестра (или число желанных реестров) больше высот.

Обновление

Чтобы брать как максимальная стоимость поле Phone, следующий query может помогать:

SELECT * FROM Tabla
WHERE Phone = (SELECT MAX(Phone) FROM Tabla)
ORDER BY ShipperId
1
ответ дан 24.11.2019, 13:02

группируй из-за ShipperName получая max ShipperID для каждого имени, asГ-:

select ShipperName, max(ShipperID)
  from MiTabla
 group by ShipperName
0
ответ дан 24.11.2019, 13:02
  • 1
    Спасибо за твой ответ, что мне нужно, чтобы он был больше, это колонна phone, и что они явились тремя колоннами. – Victor 20.10.2016, 02:39

Возможно реализовывать следующей формы

SELECT * FROM Shipper WHERE (Phone > (SELECT MIN(Phone) FROM Shipper));

сейчас давайте предполагать, что ты ввел еще одно поле

insert into shipper values (5,"platano",3);

, и ты хочешь найти всегда самого большего, можешь использовать оператор NOT и результат ее operaciГіn будет противоположностью а мы используем оператор NOT

SELECT * FROM Shipper WHERE NOT (Phone < (SELECT MAX(Phone) FROM Shipper));
0
ответ дан 24.11.2019, 13:02