问题描述
SELECT [dataset].[ID],count(distinct([dataset].dates)) AS distinct_dates
FROM [dataset]
GROUP BY [dataset].[ID];
这给出了错误 UnDefined function distinct in expression
解决方法
您可以使用两个级别的聚合:
SELECT [dataset].[ID],COUNT(*) AS distinct_dates
FROM (SELECT DISTINCT id,dates
FROM [dataset]
) as d
GROUP BY [dataset].[ID];
严格来说这不是 100% 相同,因为这会将 NULL
计为一个单独的值(但 count(distinct)
会忽略 NULL
值)。因此,要相同,您需要使用:
SELECT [dataset].[ID],COUNT(dates) AS distinct_dates