首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >sql获取最常用的记录

sql获取最常用的记录
EN

Stack Overflow用户
提问于 2015-02-25 20:56:40
回答 1查看 52关注 0票数 1

在我的应用程序中,每个用户都可以有自己的产品愿望列表。我想要五张最常用的唱片但是..。Wishlist表获取列:

  1. id
  2. user_id
  3. product_id
  4. 就位!!

位置是产品在愿望列表中显示的顺序。每个位置都能得到积分。积在第一位得到9分,第二个8分(.)第十位,每隔一段时间结束,得到零分。

换句话说,我想得到5条最高和值的记录(count() * position_point),由product_id记录

这在sql中是可能的吗?或者我应该使用php来获得正确的记录吗?

类似于:

代码语言:javascript
代码运行次数:0
运行
复制
    select product_id, CASE position WHEN 1 THEN 9 * (select count(id) as countie from product_wishlist b where position <10 and a.product_id = b.product_id and  a.position = b.position  group by product_id) end as summary
from product_wishlist a

会正确地工作并且是相当优化的吗?只是增加了剩下的条件?

编辑:并在product_id上区别开来

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-26 00:41:29

您可以写得更简单一些:

代码语言:javascript
代码运行次数:0
运行
复制
select product_id,
       sum(greatest(10 - position, 0)) as summary
from product_wishlist pw
group by product_id
order by summary desc
limit 5;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28729397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档