mysql查询:如果将记录按时间段分组

mier0713 2010-05-19 05:16:58
我使用的是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

...全文
244 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mier0713 2010-05-20
  • 打赏
  • 举报
回复
谢谢,毫无疑问的满分~\(≧▽≦)/~
ACMAIN_CHM 2010-05-19
  • 打赏
  • 举报
回复
select a_id,
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
zhangweiit 2010-05-19
  • 打赏
  • 举报
回复
group by 日期的话,将会出现很多个组

所以,这个,要通过三条语句,分别得出,小于今天的,今天的,大于今天的
zhangweiit 2010-05-19
  • 打赏
  • 举报
回复
楼主,你这个需求,是无法通过一个sql语句搞定的
因为,你的需求是> ,< 而不是简单的等于

wwwwb 2010-05-19
  • 打赏
  • 举报
回复
贴记录及要求结果出来看看

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧