Mysql SQL如何找到租电影最多的客户?

Mysql SQL如何找到租电影最多的客户?,mysql,sql,Mysql,Sql,我正在努力回答一个问题,那就是哪个客户租了这辆车 大多数电影 我使用MySQL中的Seikila示例数据库来完成这项工作。我有一些东西将我的表连接在一起,并试图给我一个计数,但我知道这是错误的,只是看租赁表中的实际数据。 我的代码如下 SELECT r.rental_id, cust.customer_id, count(*) as Total_Rentals FROM rental as r INNER JOIN customer AS cust on r.customer_id = cust

我正在努力回答一个问题,那就是哪个客户租了这辆车 大多数电影

我使用MySQL中的Seikila示例数据库来完成这项工作。我有一些东西将我的表连接在一起,并试图给我一个计数,但我知道这是错误的,只是看租赁表中的实际数据。 我的代码如下

SELECT r.rental_id, cust.customer_id, count(*) as Total_Rentals
FROM rental as r
INNER JOIN customer AS cust on r.customer_id = cust.customer_id
GROUP BY cust.customer_id;
但它告诉我,例如,顾客1租了32部电影,我知道这是错误的。我做错了什么? 由于我被要求澄清,我使用的数据库是:


我正试图找到哪位客户租了最多的电影,我不完全确定我的脚本实际返回了什么。

从选择列表中删除列
rental\u id
,并按
count(*)
降序返回前1行:

SELECT cust.customer_id, cust.name, count(*) as Total_Rentals
FROM rental as r
INNER JOIN customer AS cust on r.customer_id = cust.customer_id
GROUP BY cust.customer_id, cust.name
ORDER BY Total_Rentals DESC LIMIT 1
但如果您只需要客户id,则无需加入:

SELECT customer_id, count(*) as Total_Rentals
FROM rental
GROUP BY customer_id
ORDER BY Total_Rentals DESC LIMIT 1

您需要加入
客户
租赁
客户
id分组(无
租赁
id)并计算:

SELECT cust.customer_id, count(*) as Total_Rentals
FROM rental as r
INNER JOIN customer AS cust on r.customer_id = cust.customer_id
GROUP BY cust.customer_id;

所以这段代码应该可以工作。如果它不起作用,那可能意味着你有重复的或其他非常规的问题。

你通常按照
分组
与你选择的
相同的列,除了那些指定设置函数的列。你的问题不清楚。标题上说,您想统计哪个客户租的电影最多,但SQL语句统计的是每个客户租同一部电影的次数。是哪一个?他们不一样。一些示例数据以及您希望从这些数据中获得的结果会有所帮助。Brandon,您能告诉我们查询的结果是什么以及您希望得到什么吗?关于这个问题有相当多的困惑。你可以通过添加更多细节来解决这个问题。所以这很接近,但它返回的客户ID并不是租电影最多的那个。顺便说一下,我使用的数据库来自这里:这段代码返回具有最多租赁ID的客户。如果你的要求不同,那么我猜你没有澄清。最出租的ID不一定是最电影的。我会假设这个问题意味着不同的电影,但我承认这是含糊不清的