0

在此处输入代码我想运行一个 sql 查询来显示不同的值及其计数。更具体地说,我跟踪用户活动的表包含以下列:

userId, NumberOfSources,Source

我想查看上周每个用户的不同来源,按这些不同值的数量排序。例如,所需的输出应如下所示:

userId   |   NumberOfSources   | Source
user1    |   3                 | sourceA
user1    |   3                 | sourceB
user1    |   3                 | sourceC
user2    |   2                 | sourceD
user2    |   2                 | sourceE

我可以运行查询来显示这两列中的每一列,但无法将它们组合起来。

显示不同值的数量:

SELECT userId, count(distinct source) FROM myTable GROUP BY userId ORDER BY count(distinct source) desc limit 10

显示不同的值:

SELECT distinct source, userId FROM myTable limit 10

有人可以帮我吗?

谢谢,奥利。

4

3 回答 3

0
  SELECT userId, count(source) 
  FROM myTable GROUP BY userId 
  ORDER BY count(distinct source) desc limit 10
  Group by userId
于 2013-10-31T08:17:40.133 回答
0

尝试这个:

 SELECT userId, COUNT(source),source
 FROM myTable
 GROUP BY  userId ,source
 ORDER BY COUNT(source) DESC
于 2013-10-31T10:10:55.760 回答
0

尝试这个。

于 2013 年 12 月 23 日更新

select userId,count(source) NumberOfSources,Source from myTable group by Source,userId order by UserID,count(source) desc

-- SELECT userId, count(source) NumberOfSources,Source -- FROM myTable GROUP BY userId,Source -- ORDER BY userId,count(source) desc,Source 限制 10

于 2013-10-31T09:30:01.787 回答