我有一个名为“ORDERS”的SQL表,它有两个属性{orderNumber(主键)和customerNumber}。当我使用
SELECT Orders.CustomerID, COUNT(Orders.OrderID) AS numOfOrders
FROM Orders
GROUP BY Orders.CustomerID
ORDER BY numOfOrders DESC
LIMIT 1;
我得到的结果是“11 18”。对应于CustomerID:11发出18个订单(在这种情况下,订单最多的客户)。
如何仅返回CustomerID而不返回numOfOrders?
答案 0 :(得分:2)
只需在COUNT()
中使用ORDER BY
即可。我愿意:
SELECT o.CustomerID
FROM Orders o
GROUP BY o.CustomerID
ORDER BY COUNT(*) DESC
LIMIT 1;
答案 1 :(得分:0)
将主查询设为子查询,然后从表中仅选择客户ID。
SELECT CustomerID from(SELECT Orders.CustomerID, COUNT(Orders.OrderID) AS numOfOrders
FROM Orders
GROUP BY Orders.CustomerID
ORDER BY numOfOrders DESC) a
LIMIT 1;