【发布时间】:2012-10-28 21:39:33
【问题描述】:
这是我的三个相关的 sql 表及其相关属性:
- OrderType 属性
ID - RestaurantVisit,属性为
OrderTypeID和RestaurantID - 餐厅,物业
ID
当给定一个订单类型(例如饮料、配菜、主菜)时,我需要返回之前订购过该订单类型的所有餐厅,以及哪个餐厅的订单最多输入。
例如,给定类型side,我返回餐厅r1, r2, r3,其中r1 是所有餐厅中最多 订单side 的餐厅,r2 是排名第二的,以此类推。
这是我目前所拥有的(记住,我已经获得了一个 OrderTypeID):
SELECT DISTINCT r.ID
FROM Restaurant r
JOIN RestaurantVisit rv
ON rv.OrderTypeID = ?
WHERE rv.ID = r.ID
这目前可以返回所有曾经收到给定类型订单的餐厅。我现在需要做的是按给定类型订单最多的餐厅订购这些。
我的想法是在某处添加这样的东西,但我完全不确定:
ORDER BY COUNT(rv.OrderTypeID = ?)
有人有什么想法吗?谢谢!
【问题讨论】:
标签: sql join count sql-order-by