2014-10-05 68 views
-1

如何将以下查询转换为不同的结果,但计算的返回的结果是否相同?我可以做一个单独的查询,但有一种方法可以将它们结合起来。MySQL - 选择带有不同计数的DISTINCT,相同表

表很简单,它只是(ID,信息,语言)

SELECT DISTINCT(`language`) FROM `info` 

很容易的,返回所有特有的语言。然而, 如何计算有多少单词具有该语言,并在相同的查询中返回。结果

例那就需要返回

语言|这个语言的词数有多少
langa | 20000
langb | 10000
langc | 4000

回答

4

如果要通过聚合数据实现结果,则需要使用分组。在这种情况下,您可以使用COUNT功能:

SELECT `language`, COUNT(`id`) FROM `words` 
GROUP BY `language` 
+0

嗯,这是一个简单的解决 - 谢谢你,@dotnetom – 2014-10-05 07:44:30

2

使用count()

这将返回字的每种语言

select language, count(word) as n_words 
from tbl_word 
group by language 

如果你想每语言独特字的数量的号码,然后使用此:

select language, count(distinct word) as n_unique_words 
from tbl_word 
group by language