一个 mysql 排序问题

2014-04-21 12:55:04 +08:00
 hellohacker
有二个表
1:购买记录表
2:中奖表

两个表都有user那么字段,比如 中奖表中 user1 中奖4次,在购买记录里面有10条数据,那么他的中奖率是40%

现在想根据中奖率排序 中奖记录表,怎么写?order by 好像不支持子句吧 比如 order by (select ...)
2801 次点击
所在节点    程序员
6 条回复
davansy
2014-04-21 13:13:37 +08:00
尽量不要在数据库中做复杂的操作。楼主的需求可以通过另起一张表单独记录中奖率的信息
skydiver
2014-04-21 13:20:45 +08:00
根据两个表建立一个view,然后在view里排序
twoconk
2014-04-21 13:24:03 +08:00
单独起一张表合适
pythoner
2014-04-21 13:27:12 +08:00
把中奖率算出来放到其它地方排序
123123
2014-04-21 14:41:32 +08:00
建个view +1
crazybubble
2014-04-21 14:52:52 +08:00
SELECT sales_sum.user, sales_sum.deals, jackpot_sum.jackpots
FROM
(SELECT sales.user, count(sales.product_id) AS deals
FROM sales
GROUP BY sales.user) AS sales_sum,
(SELECT jackpot.user, count(jackpot.id) AS jackpots
FROM jackpot
GROUP BY jackpot.user) AS jackpot_sum
WHERE sales_sum.user = jackpot_sum.user
ORDER BY (jackpot_sum.jackpots / sales_sum.deals) DESC;

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/109418

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX