SQL查询选择下订单最多的客户

标签 sql

我想选择下订单最多的客户:

我有 2 个表:

CREATE TABLE customers(
customerid INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
NAME CHAR(50) NOT NULL,
address CHAR(100) NOT NULL,
city CHAR(30)NOT NULL
);


CREATE TABLE orders(
orderid INT UNSIGNED NOT NULL,
customerid INT UNSIGNED NOT NULL,
);

这就是我想要做的:

SELECT customers.customerid, customers.name,orders.orderid, COUNT(customerid) 
AS CostumerCount 
FROM customers 
INNER JOIN orders 
ON customers.customerid=orders.orderid; 

我该怎么做?

最佳答案

既然您使用的 RDBMS 不一定,那么让我假设您使用的是 MySQL,并且您正在寻找具有最高订单数:

SELECT 
  customers.customerid, 
  customers.name,
  COUNT(orders.orderid) AS Orderscount
FROM customers 
INNER JOIN orders ON customers.customerid = orders.customerid 
GROUP BY customers.customerid, 
         customers.name
ORDER BY Orderscount DESC
LIMIT 1; 

关于SQL查询选择下订单最多的客户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14851128/

相关文章:

mysql - SQL:过去7天的总条目,按天分组,如果当天没有条目则将其设置为0

sql - PostgreSQL:选择具有特定成员的组

sql - T-SQL 中的 DateTimeOffset.Now

mysql - SQL:选择唯一日期、该日期的总计、该日期的总计以及另一个参数

c# - 在 Excel 上执行多个更新命令

sql - 使用 PostgreSQL 剪切部分字符串

php - 无法通过 SQL 数据库在 PHP 中订购?

mysql - 在 codeigniter 中使用 Where 和 Where 条件更新 SQL

java - 无法修复 JOOQ 查询中的 "Unknown table"异常

java - Hibernate - 在父表和子表中的列上设置过滤