1

我有一张带有 roll_no 和 No_of_items 的表(两者都不是主要的)

是否可以按以下方式对它们进行排序:第一个条目具有最高的项目数,然后属于该 roll_no 的所有条目出现,然后来自具有最高项目数的 diff roll_no 的下一个条目,然后是所有属于该客户的条目等

例如。

Column 1 Column 2
A          12
A          05
C          19
C          18
C          02 
B          05

应显示为:

C 19
C 18
C 02
A 12
A 05
B 05
4

2 回答 2

1

试试这个。

select t1.*
from yourtable t1
    inner join 
    (
        select 
            client_id, max(numberofdays) cnt 
        from yourtable 
        group by client_id
    ) t2
        on t1.client_id = t2.client_id
order by cnt desc, client_id, numberofdays desc;

这也可能有效,取决于 SQL 风格

select *
from yourtable
order by 
    max(numberofdays) over (partition by client_id) desc, 
    client_id, 
    numberofdays desc;

编辑:添加 client_id 以保持具有相同编号的行。

于 2012-10-17T21:00:38.583 回答
1

您将在 sql 查询中使用的是“order by”,您的代码使用 MySql 将如下所示

<?php
$query = mysql_query("select `client_id`, `No_of_Days` FROM `tablename` order by `No_of_Days` DESC ");
while($row = mysql_fetch_object($query))
{
     echo $row->client_id." ".$row->No_of_Days;
}
?>

查询是这里的主要工作

于 2012-10-17T21:03:09.743 回答