搜索MySQL数据库,按COUNT排序结果

时间:2014-05-26 07:25:03

标签: php mysql count

我有一个数据库表' sales_list'。这是属于users_sales_guild_id的销售记录行。我想查询表格并按每个用户的销售数量排序结果,从最高到最低。

我认为这个查询可以做到,但是没有...

$total_query = "SELECT *, COUNT(users_sales_guild_id) AS users_sales_guild_id_count FROM sales_list WHERE sales_entry_date BETWEEN '2013-10-01 00:00:00' AND '2014-11-30 23:59:59' ORDER BY users_sales_guild_id_count DESC";
$total_rs = mysql_query($total_query) or trigger_error ("Query: $total_query\n<br>MySQL Error: " .@mysql_error()); // Run the query.
$num_rs = mysql_num_rows($total_rs);

此查询返回1条记录。而不是按每个用户的销售数量排序的记录选择。

非常欢迎您的协助。

2 个答案:

答案 0 :(得分:3)

除非有group by子句,否则

count(*)将返回一行,因此查询应为

SELECT *, 
COUNT(*) AS users_sales_guild_id_count 
FROM sales_list 
WHERE sales_entry_date BETWEEN '2013-10-01 00:00:00' AND '2014-11-30 23:59:59' 
group by users_sales_guild_id
ORDER BY users_sales_guild_id_count DESC

更新:最好选择col1,col2 .....而不是*在做分组时 - 由InoSHeo提出的点

检查此链接 http://sqlfiddle.com/#!2/1201d/6

答案 1 :(得分:1)

检查此链接是否要根据用户名http://sqlfiddle.com/#!2/1201d/4获取详细信息,此处我使用了类型,您可以使用用户名