2012-11-21 56 views
0

我有一个包含ID和值的数据集。对于每个值,我希望在数据集中获得相应的频率。 什么是最高效的纯SQL查询解决方案?(即不使用Java等)或者使用Java与SQL更高效?数据集中的SQL频率计数

  1. 我使用的德比SQL

这是我以前对这个问题

  1. 解决方案中获得一个新的表中的所有不同的值,并添加一个频率列
  2. 编写Java代码遍历此新表中的所有不同值并对原始数据集运行计数查询

我真的想避免额外的Java代码...

所有帮助表示赞赏!

回答

1
SELECT COUNT(DISTINCT value) 
    FROM dataset 
+1

那里有我的大脑去了? – CodeKingPlusPlus

+1

这不是我所谓的“频率” –

3
SELECT Value, COUNT(*)/(SELECT COUNT(*) FROM dataset) AS Frequency 
FROM dataset 
GROUP BY Value 
+0

我相信这是相对频率/比例?这听起来是对的吗? – CodeKingPlusPlus

+0

是的 - 那就是我如何理解你的问题 – pkmiec