Zapytanie grupujące w miesiące SQL Server

0

Cześć, chciałbym stworzyć zapytanie, które wybierze mi 10 największych wartości dla każdego miesiąca. Czyli 1 miesiąc to 10 wyników, 2 miesiące to 20. Baza to SQL Server.

Stworzyłem póki co zapytanie, które wybiera mi 10 największych wartości z całej tabeli, teraz pytanie jak zapakować to w miesiące?
*
SELECT TOP 10
a.Max AS expr1
,a.Date AS expr2
FROM mma.a
GROUP BY a.Max
,a.Date
ORDER BY expr1 DESC*

2
select miesiac, [max] from (
SELECT
a.Max 
,month(a.Date) miesiac
,row_number() over (partition by month(date) order by [max] desc) r 
FROM mma.a) dt
where r < 11
order by 1, 2 desc
0
Panczo napisał(a):
select miesiac, [max] from (
SELECT
a.Max 
,month(a.Date) miesiac
,row_number() over (partition by month(date) order by [max] desc) r 
FROM mma.a) dt
where r < 11
order by 1, 2 desc

Super :) Jedynie tyle, że mam kolumnę z numerem miesiąca - w jaki sposób mógłbym mieć kolumnę z pełną datą?

1

Zakladajac ze kolumna miesiąc nazywa się miesiac

select miesiac,date, [max] from (
SELECT
a.Max 
,miesiac
,date
,row_number() over (partition by miesiac order by [max] desc) r 
FROM mma.a) dt
where r < 11
order by 1, 3 desc
0
Panczo napisał(a):

Zakladajac ze kolumna miesiąc nazywa się miesiac

select miesiac,date, [max] from (
SELECT
a.Max 
,miesiac
,date
,row_number() over (partition by miesiac order by [max] desc) r 
FROM mma.a) dt
where r < 11
order by 1, 3 desc

Bardziej chodziło o modyfikację poprzedniego zapytania, które by dołożyło kolumnę z pełną datą do wyniku, który otrzymywałem wcześniej.

1

nie rozumiem, którego zapytania?
to co robisz nie osiagniesz funkcją aagregujacą, więc nie za bardzo wiem czego oczekujesz....

1 użytkowników online, w tym zalogowanych: 0, gości: 1