所以这个语句一开始没有连接,它只是简单地查找产品表并按项目代码对结果进行分组。
SELECT a.item_code,
a.price,
b.v_no
FROM product a
JOIN variation b ON a.item_code = b.item_code
WHERE a.price>=2
GROUP BY a.item_code
现在我已经添加了join,我想按v\u no分组,但前提是数据v\u no存在。这是因为 product
表中有相应的条目 variation
table。所以分组依据 item_code
对于“正常”产品,但分组 v_no
那么 item_code
如果 v_no
存在。
以下操作无效:
SELECT a.item_code,
a.price,
b.v_no
FROM product a
JOIN variation b ON a.item_code = b.item_code
WHERE a.price>=2
GROUP BY b.v_no,
a.item_code
这个 item_code
分组仍然存在,但 v_no
分组被忽略。
1条答案
按热度按时间8iwquhpp1#
为了考虑所有产品(有/无变化),您需要更改为
LEFT JOIN
.对于条件分组方式,可以使用
Coalesce()
功能;它将考虑分组时的第一个非空值。请尝试以下操作: