douleijiang8111 2014-05-26 07:25
浏览 2002
已采纳

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

I have a database table 'sales_list'. In this is rows of sales records attributed to a users_sales_guild_id. I'd like to query the table and order results by the number of sales made by each user, highest to lowest.

I thought this query would do it, but alas no...

$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
<br>MySQL Error: " .@mysql_error()); // Run the query.
$num_rs = mysql_num_rows($total_rs);

This query returns 1 record. rather than a selection of records ordered by the number of sales by each user.

Your assistance is much welcomed.

  • 写回答

2条回答 默认 最新

  • dongxi1320 2014-05-26 07:32
    关注

    count(*) will return one row unless there is a group by clause, so the query should be as

    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
    

    UPDATE : Its better to select col1,col2 ..... instead of * while doing group by - Point raised by InoSHeo

    check this link http://sqlfiddle.com/#!2/1201d/6

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘