获取表中唯一值的计数的语句是什么?

时间:2014-02-21 02:47:49

标签: mysql sql

例如,如果我有一张人拥有的DVD表,就像这样

  OWNER               TITLE
---------------------------------
Jennifer    |    Ghostbusters
Jennifer    |    Jurassic Park
Alex        |    Titanic
Jennifer    |    Aliens
Jack        |    Seinfeld
Jack        |    Baby's Day Out
Alex        |    Jurassic Park

我想知道每个OWNER有多少行,比如

Jennifer    |    3
Alex        |    2
Jack        |    2

我该怎么做?我知道如何计算 有多少OWNER,但不知道每个OWNER有多少行。到目前为止,我一直在使用多个语句 - 选择所有者(不同的所有者),创建一个返回名称的数组,然后为数组中的每个项目发出一个“select where count from owner = array [i]” - 但这似乎不是明智的做法。

4 个答案:

答案 0 :(得分:2)

select count(1) as COUNT,OWNER from DVDS group by OWNER

答案 1 :(得分:2)

我认为拥有以下查询:select count (1) from dvds group by owner可以解决这个问题。这假设dvds是你的表名

答案 2 :(得分:2)

使用计数功能和GROUP BY要分组的列。

SELECT OWNER, COUNT(*)
FROM DVD
GROUP BY OWNER

答案 3 :(得分:0)

所有者的DVD数量:

select owner, count(*) from dvd group by owner

所有者提供的唯一DVD数量:

select owner, count(*)
  from (select distinct owner, title from dvd) x
 group by owner