April_春 2021-12-01 16:54 采纳率: 42.9%
浏览 43

case when then 和count的问题

select r.app_id from ms_tms_mini_app_record r ,
ms_tms_mini_app a
where r.app_id = a.mini_app_id
order by (case :sort
when '1' then count(a.mini_app_id )
when '2' then timestamp
end ) desc ;
想通过输入不同的sort进行不同的排序,1为出现次数,2为时间
现在语句会报错。
想问一下在case when then后面不能添加聚合函数吗,如果不能有没有其他的写法。

  • 写回答

2条回答 默认 最新

  • CSDN专家-文盲老顾 2021-12-01 17:01
    关注

    聚合函数一般是搭配分组使用的,如果没有分组,那么就只能保留聚合函数,其他类似id这样的无法聚合的字段是不能同时使用的

    另外就是,order 排序,排序字段优先是按照逗号分隔的, order by field1,field2 desc,就是优先字段1升序,字段1相同,字段2降序排列,不可能对不同类型的字段做同一种排序规则

    评论

报告相同问题?

问题事件

  • 创建了问题 12月1日