私はSQLに関連する質問があります。私は2つの列、tasker_IDとworking_hoursを含むデータセットを持っています。GROUP BYクエリで最低合計を選択するにはどうすればよいですか?
列は同類をこのようになります。
tasker_id working_hours
1 30
2 . 20
3 14
1 23
4 24
2 39
3 27
2 18
5 0
... をそして私はタスカーは少なくとも働いされているのを確認したいですか? 、私は簡単に少なくとも労働時間を持っているIDを見ることができ、オーダーから
select tasker_id, sum(working_hours) as sum_hours
from test.test
group by tasker_id
having sum_hours>0
order by sum_hours;
:私はこれを達成するために、このようなコードを使用し、まず
(我々は完全に0時間を働いていた人をカウントされません)私は最小限の機能を使用してのIDが最も少ない勤務時間を表示するようにします。ここ
そして、私のSQLコードです:
select tasker_id, min(sum_worked) as min_worked from (
select tasker_id, sum(working_hours) as sum_worked
from test.test
group by tasker_id
having sum_worked>0)a
;
しかし、コードが間違っているようだ、誰かがこの上で私を導くことができますか?私はその価値関数がグループの方法で行くことを知っていましたが、どこが間違っているのか分かりません。または、誰かが正しいコードを直接表示できますか?
PS:私はMySQLを使用しています。
あなたはなど、(例えばMySQLの、SQL Serverを使用しているSQLのバージョンは何)? –
これらのクエリが機能しない理由(つまり、出力が期待どおりでない理由)のデモンストレーションがなければ、これは少し難解です。この質問も放棄されているように見えるので、私は閉会することにしています。ここには[mcve]が必要です。 – halfer