Cześć, próbuję napisać zapytanie, które zwróci mi niepowtarzające się wartości z kolumny A, największą wartość z kolumny C i wartość z kolumny B z tego samego wiersza. Tabela wygląda tak:
Używam bazy MS SQL.
Próbowałem już DISTINCT, GROUP BY, MAX(c) itp. i nie udało mi się osiągnąć pożądanego efektu, jak zrobiłem GROUP BY to było dobrze, ale tylko dla kolumn A i C, nie udało mi się dodać kolumny B.
Bardzo proszę o pomoc, z góry dziękuję.
Pozdrawiam
0
0
Wydaje mi sie, ze PARTITION i OVER BY() pomoże.
Tu przyklad uzycia: http://www.midnightdba.com/Jen/2010/10/tip-over-and-partition-by/
0
SELECT A, MAX(C)
FROM TABELA
GROUP BY A
To rozwiązanie było najbliższe, nie mogę jednak dodać kolumny B.
0
select a,b,c from
(select *, dense_rank() over(partition by a order by c desc) rn from t) x
where x.rn = 1
1
SELECT T.*
FROM test T
INNER JOIN
(SELECT A, MAX(C) AS Max
FROM test
GROUP BY A) grouped
ON T.A = grouped.A
AND T.C = grouped.Max
0
SELECT
A,
B,
C
FROM (SELECT
ROW_NUMBER() OVER (PARTITION BY A ORDER BY C DESC) R
,*
from
TBALEA) DT
WHERE R = 1