3

我目前正在尝试从我的 MSSQL 数据库中获取最受欢迎的 productID。这就是表格的样子(带有一些虚拟数据):

订单项:

+--+-------+--------+---------+
|ID|OrderID|Quantity|ProductID|
+--+-------+--------+---------+
| 1|      1|       1|        1|
| 2|      1|       1|        2|
| 3|      2|       1|        1|
| 4|      2|      50|        2|

OrderID 字段可以忽略,但我需要从该表中找到最流行的 ProductID,并按照它们出现的频率对其进行排序。结果集应如下所示:

+--------+
|PoductID|
+--------+
|       2|
|       1|

由于 ProductID 2 的总数为 51,因此需要先出来,然后是 ProductID 1,它的总数仅为 2。

(注:查询需要兼容回 MSSQL-2008)

4

2 回答 2

8
SELECT
  productID
FROM
  yourTable
GROUP BY
  productID
ORDER BY
  SUM(Quantity) DESC

GROUP BY允许SUM(),但您不必在 中使用它SELECT才能被允许在 中使用它ORDER BY

于 2012-06-14T10:25:39.013 回答
3
select ProductID
from OrderItems
group by ProductId
order by sum(Quantity) desc;
于 2012-06-14T10:25:48.590 回答