これがサンプルデータセットです。
shareId mode shareLevel targetId targetItemId
26 1 5 0 2
32 1 5 0 21
33 2 1 1 21
34 1 3 0 21
結果としてこれを取り戻そうとしています:
shareId mode shareLevel targetId targetItemId
26 1 5 0 2
33 2 1 1 21
*結果として、「shareId」フィールドが必要です。
*TargetItemId でグループ化するため、特定の targetItemId に対して単一のレコードのみが返されます
*しかし、最高のモード値を持つレコードが必要なので、グループ化中に、MAX(モード) を持つフィールドが必要です
これが私が試したものですが、うまくいきません:
select shareId FROM shares group by targetItemId having mode = MAX(mode)
以下のみを返します。
shareId mode shareLevel targetId targetItemId
26 1 5 0 2
したがって、基本的に、一意の各 targetItemId の shareId を取得するにはどうすればよいですか。ただし、最大のモードを持つ特定の targetItemId の行が必要です。どうすればいいですか?