2014-01-10 32 views
-1

可以说我有一个简单的'appID'和'userID'表,他填充了每个由特定用户使用的应用程序(永远)。 (这些ID是指其他具有关于应用程序和用户信息的表格,这些信息对于此问题无关紧要)。如何计算MySQL中唯一值的排名?

例如:

appID userID 
1  1 
1  2 
2  2 

在这里,我们可以看到应用#1,使用由两个用户,但应用程序#2由一个用户使用。

如果可能,我想使用MySQL查询为最常用的应用程序生成统计信息。查询将返回带有appID的排序结果列表以及使用它的唯一用户总数。

我做了一些研究,但无法弄清楚在SQL中很容易做到这一点。如果有人可以帮忙,我会很感激。如果它需要一个非常长的涉及存储过程,我可能会转而在代码中进行一些计算(至少在初始阶段),因为它会更容易排除故障。

+1

为什么缺乏研究不再是关闭问题的正当理由? – Strawberry

+0

@Strawberry:请参阅[应该堆栈溢出授予“A”的努力?](http://meta.stackexchange.com/q/210840)以及http://meta.stackexchange.com/a/215546 – eggyal

+0

“缺乏研究”是非常主观的。诚然,我只花了几分钟的时间做谷歌搜索找到我的问题的答案,但有很多问题在该时间范围内得到解决。如果我花了几个小时做更多的搜索(并阅读SQL文档),我最终可能会想到这一点。但是在这里写下问题让我的问题在一个小时内解决了,同时我还能够在其他方面开展工作。似乎是一种非常有效的方式,我看不到任何人伤害我的帖子。请记住,这不是“家庭作业”,它是一个个人项目。 – Locksleyu

回答

1
SELECT appID, COUNT(*) FROM myTable GROUP BY appID ORDER BY COUNT(*) DESC 
+0

太棒了,这个作品! – Locksleyu