gpt4 book ai didi

sql - 选择第一个匹配行

转载 作者:行者123 更新时间:2023-12-03 21:40:16 24 4
gpt4 key购买 nike

我有一个表“tbl”,它看起来像这样:

prod | cust | qty
p1 | c1 | 5
p1 | c2 | 10
p2 | c1 | 2
p3 | c2 | 8

我需要的是产品和客户对的不同列表,但如果产品销售给多个客户,则只需要第一个客户。换句话说,结果需要如下所示:
prod | cust
p1 | c1
p2 | c1
p3 | c2

我已经尝试了所有我能想到的方法,但我无法得到正确的结果。显然,distinct 和 group by 都不会(单独)工作,因为它们都将返回 p1, c2 行。

我找到了这个 question这是一个非常接近的匹配,但我无法弄清楚如何重新编写它以使其满足我的需要。

最重要的是,这一切目前需要在 Access 2007 或更高版本中运行,但在 future 某个时候,它也需要在 MySQL 中运行。

对将结果加入客户表的任何人都表示额外的感谢,以便我可以从客户代码中查找人类可读的名称,例如c1 => Fred Bloggs Spanner

最佳答案

核心问题:

SELECT prod, MIN(cust)
FROM yourTable
GROUP BY prod

对于“奖金”:
SELECT T.prod,
T.cust,
YC.SomeCustomerAttribute1,
YC.SomeCustomerAttribute2
FROM (
SELECT prod, MIN(cust) AS first_cust
FROM yourProducts
GROUP BY prod
) AS T
JOIN yourCustomers AS YC ON YC.cust = T.first_cust

关于sql - 选择第一个匹配行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9504840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com