SQL将字段组合在一个表中



有一个脚本显示两个表。String类型的名称和Long类型的计数。如何将相同的字段"缺货"合并到一个字段中,将单独的字段"结婚"、"重新排序"合并到同一个字段"结婚/重新排序"。在执行此操作时,保存两个表的类型并获得组合值​​在新的领域。以及如何不显示额外的字段,例如,员工表格等。我知道你可以使用CASE,WHEN,THEN结构。但我不明白如何在我的剧本中正确地描述它。

SELECT rl.reason AS reject_reason, COUNT(*)
FROM
mp.reservation_log AS rl
JOIN
mp.store AS st ON rl.store_id = st.md_id
JOIN mp.order_item oi ON oi.reserve_id=rl.reservation_id
JOIN mp.sku s ON s.id=oi.item_id
JOIN mp.product p ON p.id=s.product_id
WHERE rl.created_at > DATE(NOW()) - INTERVAL 1 MONTH AND rl.is_successful=0
GROUP BY rl.reason;

表示例:

表格示例

看起来你想在同一组中结合几个原因。

您可以使用case表达式作为无聚合列,如下所示:

select
case 
when r1.reason in ('marriage', 're-sorting') then 'marriage/re-sorting'
else r1.reason
end real_reason,
count(*) cnt
from ...
where rl.created_at > current_date - interval 1 month and rl.is_successful = 0
group by real_reason

旁注:DATE(NOW(((最好写为CURRENT_DATE。

最新更新