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
Zapytanie - GROUP BY, MAX
- Rejestracja: dni
- Ostatnio: dni
0
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Norwegia, Stavanger
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/
- Rejestracja: dni
- Ostatnio: dni
0
SELECT A, MAX(C)
FROM TABELA
GROUP BY A
To rozwiązanie było najbliższe, nie mogę jednak dodać kolumny B.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 2
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
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1863
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