Я склонен быть поклонником CTE для этой цели (с в основном встроенными представлениями).Похоже, вы используете SQL Server, поэтому вы можете сделать это:
WITH counts AS
(
SELECT DISTINCT MacroID, COUNT(MacroID) AS MacroCnt, CONVERT(varchar, tStamp, 103) AS x
FROM TRADStatMacro
GROUP BY MacroID, CONVERT(varchar, tStamp, 103)
)
SELECT DISTINCT X, COUNT(MacroCnt) AS Y FROM counts
GROUP BY X
Вопросы: вы имели в виду, что вторая COUNT()
действительно будет SUM()
?
Но ваш запрос может быть упрощен.Вам не нужен DISTINCT
, если вы уже группируете по столбцам, которые делают запись уникальной.И вы не используете поле MacroId
, кроме как в агрегатной функции COUNT()
, поэтому вы можете устранить ее и, возможно, упростить все до:
SELECT CONVERT(varchar, tStamp, 103) AS X, COUNT(MacroID)
FROM TRADStatMacro
GROUP BY MacroID, CONVERT(varchar, tStamp, 103)