Set2017 2017-08-19 03:58 采纳率: 25%
浏览 781

哪位云友帮我这句SQL调优啊

 SELECT c.`name`,
(SELECT COUNT(r.rid) FROM `reward_punish` r LEFT JOIN student s ON s.stuno = r.student WHERE r.date > '2017-8-15 11:29:20' AND r.date < '2017-8-19 11:29:48' AND r.type = '10001' AND s.stuno=c.stuno) AS t1,
(SELECT COUNT(r.rid) FROM `reward_punish` r LEFT JOIN student s ON s.stuno = r.student WHERE r.date > '2017-8-15 11:29:20' AND r.date < '2017-8-19 11:29:48' AND r.type = '10002' AND s.stuno=c.stuno) AS t2
 FROM student c;

r.type(奖惩类型) 至多会存在30个,这样就会扩充为 t1...t30吗?

奖惩类型可能会存在30种,查询列表需要展示所有学生类型的次数

这种该如何破 SQL小白

谢谢

  • 写回答

4条回答 默认 最新

  • nihao20071 2017-08-19 04:33
    关注

    是每个学生,每种类型次数吧,下面sql,手写没运行,提供一种解决思路
    select c.name, r.type, count(1) cs
    from student c
    left join (select *
    from reward_punish r
    where r.date > '2017-8-15 11:29:20'
    AND r.date < '2017-8-19 11:29:48') r
    on c.stuno = r.student
    group by c.name, r.type

    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站