我有两张table:
任务:
选择last_name
个用户,这些用户:
- 在2013年1月至少下了一个订单;
- 并在同一年的任何其他月份作出最少一项命令。
我只能使用子查询、连接和联合(甚至不允许使用WITH)。
我不明白如何同时合并两个条件。
我运行此程序以获取2013年有订单(发票)的用户:
SELECT
customer_id,
EXTRACT(MONTH FROM invoice_date::timestamp) AS invoice_month,
COUNT(invoice_id) as invoices
FROM invoice
WHERE EXTRACT(YEAR FROM invoice_date::timestamp) = 2013
GROUP BY customer_id, invoice_month
此外,我能够找到在2013年1月至少下过一个订单的用户:
SELECT
client.last_name
FROM client
WHERE client.customer_id IN (
SELECT
customer_id
FROM invoice
WHERE
TO_CHAR(invoice_date::timestamp, 'YYYY-MM') = '2013-01'
GROUP BY customer_id
HAVING COUNT(invoice_id) >= 1
)
但我不知道怎么加上第二个条件。有什么建议吗?
2条答案
按热度按时间sz81bmfz1#
guykilcj2#
您可以使用filtered count函数修改查询,如下所示: