这个问题在这里已经有答案了:
如何选择最大值(列值)的行,与sql中的另一列不同(19个答案)
两年前关门了。
我有两张table:
manifests
id | customer | paid_order | price | payment_method
paid_orders
id | paid
JOIN paid_orders ON manifests.paid_order = paid_order_id
假设这个场景:
有两个相同的 customer
但有不同的 payment_method
.
customer | paid_order | price | payment_method | paid |
1 | 1 | 200 | 0 | 200 |
1 | NULL | 100 | 1 | NULL |
2 | NULL | 150 | 1 | NULL |
我只想 GROUP BY customer
但也只能选择 payment_method
的 0
只有有两个相同的客户。
预期结果:
customer | paid_order | price | payment_method | paid |
1 | 1 | 200 | 0 | 200 |
2 | NULL | 150 | 1 | NULL |
1条答案
按热度按时间r1wp621o1#
一种方法是总是从一个或多个客户记录中选择记录,其中
payment_method
具有最小值:这个逻辑应该是可行的,因为如果
payment_method
如果存在0,则该记录将成为目标。否则,单值记录将成为目标。