【发布时间】:2020-03-03 10:57:28
【问题描述】:
我正在尝试将多行组合在一起以形成一个新表。我这样做是为了找到每个客户的每种发票交付方式的计数。
我试过这段代码
CREATE TABLE new_table AS
SELECT customer_id,
(COUNT(invoice_send_method WHERE invoice_send_method='Fax' GRPUP BY(purchase_date || '_' || item_id))),
(COUNT(invoice_send_method WHERE invoice_send_method='Mail' GRPUP BY(purchase_date || '_' || item_id))),
(COUNT(invoice_send_method WHERE invoice_send_method='Email' GRPUP BY(purchase_date || '_' || item_id)))
FROM my_table;
但它在 invoice_send_method 的第一个实例之后(在 WHERE 之前)返回语法错误。
为了算作发票运输方式的一个实例,我创建了一条规则,它必须是 purchase_date 和 item_id 的唯一组合。
有没有更好的方法来做到这一点?似乎我无法在 COUNT 中引入 WHERE 或 GROUP BY 语句,但我不知道在检查所有发票交付方式的同时还能如何做。
我正在使用 MySQL Workbench。
【问题讨论】: