计算表中每个独特元素出现的次数

时间:2014-05-22 07:47:00

标签: mysql sql

我有一个名为key_uniqueWord的MySQL表。这就是它的样子。

enter image description here

这是表格的创建方式..

CREATE TABLE `key_uniqueword` (
 `p_id` int(11) NOT NULL,
 `word` varchar(45) NOT NULL,
 `uniqueWordCount` int(11) NOT NULL,
 KEY `conv4` (`uniqueWordCount`,`p_id`,`word`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

我可以从以下命令获取word列中每个唯一个体记录的列表。

SELECT DISTINCT `word` from `key_uniqueword`

我可以检查一下"特别" word列中的单个元素使用以下命令出现在key_uniqueword表中。例如,让我们检查单词" about"

SELECT COUNT(`word`) FROM `key_uniqueword` WHERE `word`="about"

就像这样,我需要知道多少次"每个" word列中的唯一元素显示在key_uniquword表格中。我期待输出类似于下表结构。它有2列,计数

word   |   count
_ _ _ _ _ _ _ _ _ 
about  |   99,450
a      |   1000
talk   |   7980
men    |   20,915

如何在MySQL查询中执行此操作? 重要 请注意p_id每行都不相同。

4 个答案:

答案 0 :(得分:2)

select word, count(*) as count
from key_uniqueword
group by word

答案 1 :(得分:1)

select word, count(1)
from key_uniqueword
group by word;

答案 2 :(得分:1)

SELECT word, count(*) as occurance FROM key_uniqueword GROUP BY word;

恕我直言,如果您有第三列存储字数,那么它将是一个非常弱的数据库设计并将导致冗余/重复,我的观点是count在您的情况下是派生属性。你不应该为此浪费你的存储空间。

在某些情况下,最好将派生属性保存在数据库中以加快查询速度,但我认为您不需要它。

答案 3 :(得分:1)

正确的查询是:

word

中选择COUNT(key_uniqueword)来自word组的AS计数