抓取按ID分组的有序记录,其中该组的第一条记录== 10

时间:2015-07-06 22:04:46

标签: sql database web-sql

使用W3 Schools SQL Server Query Tool我删除了内容并输入以下内容:

SELECT * FROM OrderDetails
ORDER BY ProductID, Quantity;

然后点击Run SQL。它很好地通过ProductID订购,然后通过ProductIDQuantity的订单进行排序。

这是我想要做的。如上所示排列表格:我希望group在此表格上ProductID,然后只返回每个组的第一条记录的ProductID组/ strong> Quantity金额为== 10

我试过这样的事情,但它不起作用:

SELECT * FROM OrderDetails
ORDER BY ProductID, Quantity
Group By ProductID
Having first(Quantity == 10);

1 个答案:

答案 0 :(得分:1)

如果我正确阅读了这一内容,您希望所有产品的10个数量是以productId顺序订购的最小数量。

SELECT productId,  min(quantity) as first FROM OrderDetails
group by productId
having first = 10
ORDER BY ProductID

编辑回答以下评论。 相同的逻辑将适用于字符串列。在这个例子中,我向所有供应商展示了第一个产品(按字母顺序列出的产品)以C开头(在W3查询工具中试用)。如果我有任何重复字符串数据的数据,我可以做=

SELECT supplierId, min(productName) as first from products
group by supplierId
having first like 'C%'
order by supplierId