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后面不能添加聚合函数吗,如果不能有没有其他的写法。
case when then 和count的问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
CSDN专家-文盲老顾 2021-12-01 17:01关注聚合函数一般是搭配分组使用的,如果没有分组,那么就只能保留聚合函数,其他类似id这样的无法聚合的字段是不能同时使用的
另外就是,order 排序,排序字段优先是按照逗号分隔的, order by field1,field2 desc,就是优先字段1升序,字段1相同,字段2降序排列,不可能对不同类型的字段做同一种排序规则
解决 无用评论 打赏 举报