distinct 和 order by 的 矛盾

select distinct cont_id from cms_contentiteminfo t order by  cast  (t.click   as   int) desc

上面这句报错ORA-1791,not a SELECTED expression

select distinct cont_id ,cast  (t.click   as   int) as c from cms_contentiteminfo t order by  cast  (t.click   as   int) desc

查出的结果是有重复记录的

cont_id   c

185337 1517
185639 1003
185586 985
185337 967
185641 937
185337 899
185639 832
185641 832
185641 727
185283 649
185144 605
185586 588
185639 564
185216 547
185586 508
185283 492
185144 422
185283 421
185216 378
185217 369
185144 346
185626 309
185217 303
192278 254

修改为

select distinct cont_id,max(cast (t.click  as   int)) c from cms_contentiteminfo t group   by cont_id order by  c desc

查询结果

cont_id  c

185337 1517
185639 1003
185586 985
185641 937
185283 649
185144 605
185216 547
185217 369
185626 309
192278 254
185145 234
191809 214
185286 191
190484 190
185642 190
190487 180
185287 171
190486 162
192483 146
189151 138
191253 118
177607 117
192704 116
185140 115

cont-id重复的记录就可以去掉了

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值