我如何可以查询交易的最大计数数的最大计数...... 我的代码如下:SQL查询 - 如何获取列表
SELECT customer_id, COUNT(customer_id)
FROM rental
GROUP BY customer_id
HAVING MAX(COUNT(customer_id)); //I need to get the MAXIMUM COUNT of the list
我如何可以查询交易的最大计数数的最大计数...... 我的代码如下:SQL查询 - 如何获取列表
SELECT customer_id, COUNT(customer_id)
FROM rental
GROUP BY customer_id
HAVING MAX(COUNT(customer_id)); //I need to get the MAXIMUM COUNT of the list
由于更多比一个客户可以拥有相同数量的最大值哟ü应该做如下
SELECT customer_id,
COUNT(customer_id) AS customerrowcount
FROM rental
GROUP BY customer_id
HAVING COUNT(customer_id) = (SELECT COUNT(customer_id)
FROM rental
GROUP BY customer_id
ORDER BY COUNT(customer_id) DESC
LIMIT 1)
但是,如果你确定一个任意的客户所选择比你应该使用
如果你正在寻找在customer_id
与在rental
表中的行数,你可以使用:
SELECT customer_id, COUNT(customer_id) as CustomerRowCount
FROM rental
GROUP BY customer_id
ORDER BY COUNT(customer_id) DESC
LIMIT 1
上面的查询将计算所有记录每个CUSTOMER_ID,按降序排序,然后只选择最上面一行。客户的最大数量将出现在CustomerRowCount
。
编辑
康拉德提出了如此地步,两个或两个以上customer_id
的可能有相同数量的记录。如果业务需求是在这种情况下应该返回多个记录,那么他的查询会给你你正在寻找的结果。如果只有一个记录应该返回,那么一个简单而一致的打破关系的方法就是让用户使用最低的customer_id
。要做到这一点,你可以改变的ORDER BY语句:
ORDER BY COUNT(customer_id) DESC, customer_id
尝试:
SELECT customer_id, MAX(COUNT(customer_id))
FROM rental
GROUP BY customer_id;
或
SELECT top 1 customer_id, COUNT(customer_id)
FROM rental
GROUP BY customer_id
ORDER BY COUNT(customer_id) DESC
查询为MySQL
SELECT
*
FROM (SELECT
customer_id,
COUNT(customer_id) AS CountOfCustomer
FROM rental
GROUP BY customer_id) q1
ORDER BY CountOfCustomer DESC
LIMIT 1
我正在使用MYSQL – newbie 2011-04-20 03:49:41
什么数据库您使用rsbarro的答案吗? – 2011-04-20 03:46:37
我想我们需要一些示例数据,如果没有发布的答案适合你。 – rsbarro 2011-04-20 03:52:26