Mysql 如何找到每个不同客户的订单数量?
我有两张桌子:Mysql 如何找到每个不同客户的订单数量?,mysql,sql,Mysql,Sql,我有两张桌子: 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(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年的订单数量。她希望按2018年的订单数量降序排序,这样她就可以根据订单量亲自向顶级客户发送感谢电子邮件。
我必须写一个查询,帮助业主找到2018年所有订单的数量,按客户电子邮件地址,按降序排序
我做了一个内部连接:
SELECT email FROM customers
INNER JOIN orders ON customers.customer_id = orders.customer_id;
但我必须统计每个不同客户的订单,因此我将有另一列2018年的订单总数
我怎样才能制定年度的WHERE条款?我有日期格式的下单日期。
如何计算每个客户id的订单数量
select customers.email, count(*)
from orders
inner join customers using (customer_id)
where orders.placed_order_date between '2018-01-01' and '2018-12-31'
group by customers.email
您可能需要订单的索引。下单日期。以下是查询
SELECT customers.email, count(order_id) as totalCount FROM customers
INNER JOIN orders ON customers.customer_id = orders.customer_id where year(order_placed_date)=2018 group by customers.email order by totalCount desc
看见