2

私のテーブル構造は(id、cluster、qid、priority)です。各クラスターの優先度の最大値を表示する方法を見つけようとしています。クラスター1の優先度が100、102、105であるとします。105を含むレコードを表示したいのですが。助けてください。

4

3 に答える 3

3

グループごとに最大値の行を選択する方法を解説した記事はこちら。

http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per-group-in-sql/

于 2010-06-14T08:11:09.930 に答える
2

次のように、内部結合を使用して行を除外できます。

select  s.*
from    structure s
join    (
        select  cluster, MAX(priority) maxprio
        from    structure 
        group by 
                cluster
        ) filter
on      s.cluster = filter.cluster
        and s.priority = filter.maxprio

すべての行がそのクラスターに対して最大の優先順位を持っている場合、これは複数の行を返します。

于 2010-06-14T08:21:47.987 に答える
2
select cluster, MAX(priority) from structure group by cluster;

すべての列を見つけるには TRY

select *  from structure
where priority = (
                select MAX(priority) from structure as s 
                where s.cluster = structure.cluster
              );
于 2010-06-14T08:11:27.963 に答える