我使用的是mysql数据库假设有一张表:
q_id a_id start_date end_date其中,a_id是外键。一个q_id对应多个a_id我想按a_id分组如果想得到每个a_id有对应一共有多少个q_id,查询语句是
select a.a_id, count(q.q_id)
FROM test
group by a.aid现在我想查询以a_id分组,a_id相同的q_id一共有几个,start_date大于今天的有几个, end_date小于今天的有几个,start_date中间end_date包括今天的有几个请问这种分组怎么查啊囧ps:神啊我真讨厌做统计5555555555555555555555
q_id a_id start_date end_date其中,a_id是外键。一个q_id对应多个a_id我想按a_id分组如果想得到每个a_id有对应一共有多少个q_id,查询语句是
select a.a_id, count(q.q_id)
FROM test
group by a.aid现在我想查询以a_id分组,a_id相同的q_id一共有几个,start_date大于今天的有几个, end_date小于今天的有几个,start_date中间end_date包括今天的有几个请问这种分组怎么查啊囧ps:神啊我真讨厌做统计5555555555555555555555
因为,你的需求是> ,< 而不是简单的等于
count(q_id) as a_id相同的q_id一共有几个,
sum(start_date>curdate()) as start_date大于今天的有几个,
sum(end_date<curdate()) as end_date小于今天的有几个,
sum(curdate() between start_date and end_date) as start_date中间end_date包括今天的有几个
from 假设有一张表
group by a_id