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

Grab ordered records grouped by ID where the first record of that group == 10

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

SELECT * FROM OrderDetails
ORDER BY ProductID, Quantity;

然后点击Run SQL。它很好地按 ProductID 排序,然后在 ProductID 上进行决胜局 它按 Quantity.

排序

这是我想做的。 table 按上面的顺序排列:我想 group 和 table 上的 ProductID 在一起,然后 return 只有那些 ProductID 每个组的 Quantity 金额的第一个记录是 == 10

我尝试过类似的方法,但它不起作用:

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

如果我没看错的话,您想要所有在 productId 订单中订购的最小数量为 10 的产品。

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