【发布时间】:2020-10-02 03:45:25
【问题描述】:
我有 2 张桌子:
CREATE TABLE customers (
customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(255) NOT NULL,
last_name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
address VARCHAR(255) DEFAULT NULL,
city VARCHAR(255) DEFAULT NULL,
state VARCHAR(2) DEFAULT NULL,
zip_code VARCHAR(5) DEFAULT NULL,
);
CREATE TABLE orders (
order_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
customer_id INT NOT NULL,
order_placed_date DATE NOT NULL,
FOREIGN KEY (customer_id) REFERENCES customers (customer_id)
);
现在是 2018 年底,工厂老板想写一个 SQL 查询,通过客户电子邮件地址查找 2018 年下订单的 COUNT。她希望按 2018 年下达的订单的 COUNT 个降序排列结果,以便她可以亲自按订单量向顶级客户发送感谢电子邮件。 我必须编写一个查询,以帮助所有者查找 2018 年所有订单的 COUNT,按客户电子邮件地址,降序排序
我做了一个 INNER JOIN:
SELECT email FROM customers
INNER JOIN orders ON customers.customer_id = orders.customer_id;
但我必须计算每个不同客户的订单,所以我将在 2018 年创建另一列 total_orders。
我怎样才能为年份创建 WHERE 子句?我有日期格式的placed_order_date。 如何计算每个 customer_id 的订单数量?
【问题讨论】: