SQL查询显示加入其计数的不同值

时间:2013-10-31 07:52:08

标签: sql join count distinct

在这里输入代码我想运行一个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

有人可以帮我吗?

谢谢, ori的

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

试试这个。

更新于2013年12月23日

选择userId,count(source)NumberOfSources,来自myTable组的Source,来自UserID的userId,count(source)desc

- SELECT userId,count(source)NumberOfSources,Source - 来自myTable GROUP BY userId,Source - ORDER BY userId,count(source)desc,Source limit 10

答案 2 :(得分:0)

试试这个:

 SELECT userId, COUNT(source),source
 FROM myTable
 GROUP BY  userId ,source
 ORDER BY COUNT(source) DESC