Я не эксперт по SQL и действительно борюсь с этим запросом (сборка в SQL Server Management Studio):
Мои данные:
id_module id_cr
---------------------
001 12345
001 67891
001 12345
001 25896
002 23456
003 78912
003 23456
004 34567
004 34567
004 34567
004 89123
004 34567
004 34567
004 89123
004 89123
004 66663
Что я хочу, чтобы он выгляделкак - Показать 2 верхних контента (по количеству записей) на модуль:
Grouped by id_module Grouped by id_cr Count (sum) of id_cr
001 12345 2
001 67891 1
002 23456 1
003 78912 1
003 23456 1
004 34567 5
004 89123 3
Пока у меня есть:
SELECT
id_module, id_cr,
RANK() OVER (PARTITION BY id_module ORDER BY id_module) AS 'Ranking',
COUNT(*) OVER (PARTITION BY id_cr) AS webtrackerCount
FROM
webtracker_user
WHERE
id_module > 0 AND id_cr > 0
ORDER BY
id_module, webtrackerCount DESC
Это дает мне все модули скаждый из id_cr указан в отдельной строке, а не сгруппирован.
Пример:
id_module id_cr ranking webtrackerCount
-----------------------------------------------------
001 64639 1 32
001 64639 1 32
(this is repeated 30 more times)
001 38099 1 12
(this is repeated 11 more times)
002 84562 1 50
(this is repeated 49 more times)
etc.
Итак, как далеко я?Есть ли способ сделать отчет, как мне нужно?Любая помощь будет очень ценится :) Спасибо!