Zapytanie - GROUP BY, MAX

Zapytanie - GROUP BY, MAX
  • Rejestracja: dni
  • Ostatnio: dni
0

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:
user image
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

shagrin
  • 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
Kopiuj
 
SELECT A, MAX(C) 
FROM TABELA
GROUP BY A

To rozwiązanie było najbliższe, nie mogę jednak dodać kolumny B.

LG
  • 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

HI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1863
1
Kopiuj
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
PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3891
0
Kopiuj
SELECT
    A,
	B,
	C
FROM (SELECT
			ROW_NUMBER() OVER (PARTITION BY A ORDER BY C DESC) R
			,*
		from
			TBALEA) DT
WHERE R = 1

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.