朋友们经常被问的一道sql面试题

in web技术 with 1 comment 访问: 22,856 次

直接上题

题干:存在如下两张表,数据依次如下,Goods(商品信息表),Orders(销售订单明细表),假定一个订单只能购买一种商品。

要求:用MYSQL语句实现,查出2015年10月份,商品月销售总额大于100000元金额排行前10的商品名称。

QQ图片20170221104949.png

直接上代码

SELECT g.GoodName
FROM  `Goods` AS g
LEFT JOIN  `Orders` AS o ON g.ID = o.PID
WHERE DATE_FORMAT( TS,  '%Y-%m' ) =  '2015-10'
GROUP BY o.PID
HAVING SUM( g.SinglePrice * o.Num ) > 100000
ORDER BY SUM( g.SinglePrice * o.Num ) DESC 
LIMIT 0 , 10

各位自己研究一下吧,若有好的思路或者疑问欢迎留言

赞赏支持
Responses / Cancel Reply
  1. lwp

    cai

    Reply