获取用户的独特阅读

时间:2018-02-20 18:05:10

标签: sql sql-server

表结构非常简单:

UserId    ReportId

我有一个这样的查询:

SELECT UserId, COUNT(*) AS 'ReportsRead'
FROM MyReports
GROUP BY UserId

基本上,这将为我提供每个用户的阅读报告总数。我想弄清楚的是如何获得每个用户已阅读的唯一报告的总数。因此,如果他以id为1读取10次报告,则计为1。

我已经尝试将ReportId添加到Select和Group by,但所有这一切都为我提供了超过几行的总数。我想要的是在一行中获得总数。没有做子查询是否可能?

1 个答案:

答案 0 :(得分:2)

使用count(distinct)

SELECT UserId, COUNT(DISTINCT reportId) AS ReportsRead
FROM MyReports
GROUP BY UserId;

不要将列别名用单引号括起来。仅对日期和字符串常量使用单引号。