用于查找最常用数据实例的SQL查询

时间:2014-05-14 19:29:16

标签: sql oracle

我正在尝试构建一个查询,该查询将对字段DESCR254的出现进行排序。因此,例如,test1由3个不同的USERID使用,test2将是第二个。有没有人知道如何构建这个查询,因为有更多的数据行和许多不同的USERID和DESCR254实例?

从sysadm.PS_IS_STATS_URLS中选择*

PS_IS_STATS_URLS

USERID   DESCR254 
ZX       test1
ZX       test2
ZC       test1 
ZB       test3
ZA       test1
ZA       test2

我希望结果看起来像这样:

DESCR254    COUNT
test1       3
test2       2
test3       1 

2 个答案:

答案 0 :(得分:3)

SELECT DESCR254, COUNT(*) AS COUNT
FROM sysadm.PS_IS_STATS_URLS
GROUP BY DESCR254
ORDER BY COUNT(*)

答案 1 :(得分:0)

根据您的问题建议,仅计算来自不同用户ID的访问次数,您需要使用COUNT DISTINCT;

SELECT DESCR254, COUNT(DISTINCT USERID) "COUNT"
FROM PS_IS_STATS_URL
GROUP BY DESCR254
ORDER BY "COUNT" DESC;

An SQLfiddle with a non counted duplicate to test with