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