2014-02-14 50 views
0

現在我試圖從mysql表中返回最大的COUNT(DISTINCT列) - 數字。 這很難描述,所以我給你舉個例子:使用條件獲取最大的COUNT(DISTINCT)mysql

我的表格有以下列:s_id,k_id,p_id。 現在我想計算每個條目具有相同p_id的條件的不同s。我需要這個來準備一個HTML-Table(所以我知道這個表有多少個列)。

數據舉例:

Data Sample

這是我得到了什麼,至今:

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

這個問題,可能有4個不同的k_ids但3它們與p_id = 1有關並且最後一個與p_id = 2有關。 a返回4而不是3。

感謝您的支持!

+2

顯示樣本數據,哪些是你所期望的輸出爲 – AgRizzo

+0

這是我目前的表中的內容:[鏈接] (http://s16.postimg.org/cz02qn1g1/distinct.png) 輸出是「4」,但它應該是「3」,因爲p_id的最大不同k_id是3 – Felix

回答

0

請考慮一下:

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

不,這將返回3不是4因爲分組。但似乎sql服務器不允許執行聚合函數,因此不允許max(count()) – mrida

+0

解決方法如下:從( select count(distinct( k_id))as cnt from table1 group by p_id )x – mrida

+0

我想你的第二個建議可以完成這項工作!現在它返回「3」!謝謝! – Felix

1

我想你想要這樣的:

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