2012-10-05 90 views
0

我需要COUNT()(或者另一個MySQL功能)我的查詢的行分開行,但我需要diferent計數,像這樣:SQL返回COUNT()的標準

什麼我得到:

id | date  | costumer_id 
    -----+------- ----+------------- 
    1 | 2012-10-05 | 103 
    2 | 2012-10-05 | 103 
    3 | 2012-10-05 | 103 
    4 | 2012-10-05 | 59 
    5 | 2012-10-05 | 59 
    6 | 2012-10-05 | 90 

我需要什麼:

id | date  | costumer_id | count 
    -----+------------+-------------+------ 
    1 | 2012-10-05 | 103   | 3 
    5 | 2012-10-05 | 59   | 2 
    6 | 2012-10-05 | 90   | 1 
+1

您是否希望'Max()'id具有多個項目'costumer_id' IDS?你的數據混雜在'103'有最小值但是'59'有最大值,哪一個是正確的? – Taryn

+0

@bluefeet不需要一個確切的'id',實際上這個表格列甚至不存在,它只是一個例子... – BernaMariano

+0

你應該提供一個準確的例子和解釋你需要什麼。因爲您提供的內容由於數據差異而不清楚。 – Taryn

回答

1

您可以通過查詢需要一個簡單的組。我懷疑你是否將ID留在了組裏。嘗試是這樣的:

select max(id), date, customer_id, count(*) 
from t 
group by date, customer_id 
order by 1 
0
SELECT id, `date`, customer_id, COUNT(1) AS `count` 
FROM `table` 
GROUP BY `customer_id` 
+0

我不會僅僅因爲MySQL允許而選擇不在GROUP BY中的列。 – Kermit

0

你必須使用GROUP BY

下面的查詢會給你想要的結果:

選擇ID,日期,costumer_id,計數(costumer_id)爲c從table1 group by costumer_id order by c desc

0
select 
    min(id) as id, 
    date, 
    customer_id, 
    count(*) as count 
from tatble 
group by 
    date, 
    customer_id 
order by 1;