2012-10-05 92 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;