使用条件mysql获取最大的COUNT(DISTINCT)

时间:2014-02-14 13:01:45

标签: mysql sql count distinct conditional-statements

现在我正在尝试从mysql表中返回最大的COUNT(DISTINCT列)数。 这很难描述,所以我给你举个例子:

我的表格包含以下列:s_id,k_id,p_id。 现在我想计算不同的s,条件是每个条目也有相同的p_id。我需要这个来准备一个HTML表(所以我知道这个表将有多少列)。

数据示例:

Data Sample

到目前为止,这就是我所得到的:

SELECT COUNT(DISTINCT k_id) AS a FROM `table`

这个问题是,可能有4个不同的k_id,但其中3个与p_id = 1相关,最后一个与p_id = 2相关。 a返回4而不是3。

感谢您的支持!

2 个答案:

答案 0 :(得分:1)

我想你想要这个:

  select p_id, count(distinct s_id) as cnt
  from table 
  group by p_id
  order by cnt desc
  limit 1;

答案 1 :(得分:0)

请考虑一下:

select max(count(distinct(k_id))) from table 
group by p_id