Rooney8 2013-12-26 03:52 采纳率: 50%
浏览 2466
已采纳

SQL 查询优化 嵌套查询

sql server ,sql如下:
select *from
(
select subject,COUNT(Subject) as cout from Questions where UserID ='banianji' and AskDate>'2011-01-01' and AskDate<'2014-01-01'
group by Subject
) as a
where a.cout=
(
select MAX(cout)from

(
select subject,COUNT(Subject) as cout from Questions where UserID ='banianji' and AskDate>'2011-01-01' and AskDate<'2014-01-01'
group by Subject
) as b
)
--------------读了上面的SQL,大家应该能明白我想得到什么数据:我要获取值最大的所有的记录(最大值相同的记录可能不止一条,我要把所有的最大值的记录都获取到)。上面的SQL的确能得到我想要的结果,但是,总感觉不好啊,本人sql小白,求大家给优化下,谢谢...

  • 写回答

3条回答 默认 最新

  • 發糞塗牆 博客专家认证 2013-12-27 08:04
    关注

    ;
    WITH cte
    AS ( SELECT subject ,
    COUNT(Subject) AS cout
    FROM Questions
    WHERE UserID = 'banianji'
    AND AskDate > '2011-01-01'
    AND AskDate < '2014-01-01'
    GROUP BY Subject
    )
    SELECT *
    FROM cte AS a
    WHERE a.cout = ( SELECT MAX(cout)
    FROM cte AS b
    )

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置