id | user_id | prd_id | amnt | dis
1 | 1 | 10 | 200 | 23
2 | 2 | 10 | 300 | 11
3 | 3 | 20 | 100 | 26
4 | 2 | 20 | 50 | 12
5 | 4 | 30 | 100 | 22
6 | 2 | 40 | 600 | 18
7 | 2 | 30 | 100 | 16
上記の表から2つの結果が必要です:
まずはby prod_id
以下の通り
prd_id | user_id | cont | highestamt | disc
10 | 2 | 2 | 300 | 11
20 | 3 | 2 | 100 | 26
30 | 4 | 2 | 100 | 22
40 | 2 | 1 | 600 | 18
第二by user_id
に以下のように:
user_id | cont | bid on prd_id | winner on bid prod_id |
1 | 1 | 10 | - | -
2 | 4 | 10,20,30,40 | 10,40 |
3 | 1 | 20 | 20 |
4 | 1 | 30 | 30 |
更新: 例: 上記: user_id = 2 が製品 10,20,30,40 (prd_id の入札) に入札したため、彼の入札 cont = 4 ...そして、そのうちの 10,40 で勝者です (入札 prod_id の勝者) ) ..なぜ 30 ではなく 10,40 だけなのか ...bcz user_id =4 が prd=30 に amt =100 で入札し、user_id =2 に amt=100 で入札した..しかし、最初の入札は user=4 が prd= で行った30 したがって、彼は prd=30 の勝者です (同じ金額の場合)
以下のクエリを試してみましby prd_id
たが、間違った結果が得られました。
SELECT `prd_id`, `user_id` , count('prd_id') as cont , max(`amnt`) as highestamt,disc
FROM `proddtails`
group by `prd_id` order by `prd_id`
上記のクエリ結果は次のとおりです: (user_id,disc
正しくない)
prd_id | user_id | cont | highestamt | disc
10 | 2 | 2 | 300 | 11
20 | 2 | 2 | 100 | 11
30 | 2 | 1 | 100 | 11
40 | 2 | 1 | 600 | 11
2番目by user_id
に、クエリになるものを取得していません。
ありがとう
アップデート :
HARSHIL に感謝します: http://www.sqlfiddle.com/#!9/5325a6/5/1
しかし、さらにいくつかのエントリの後、私はこのバグ を見つけました :
user_id cont bid_on_prd_id winner_on_bid_prod_id
1 1 10 (null)
2 4 10,20,40,30 10,40,30
3 1 20 20
4 1 30 30
しかし、私は以下のようにしたい:
null user_id なし
user_id cont bid_on_prd_id winner_on_bid_prod_id
2 4 10,20,30,40 10,40
3 1 20 20
4 1 30 30
null user_id を使用 (ただし、私の wamp サーバーでは、user_id =1 の Winner_on_bid_prd_id に null が表示されません。 null の代わりに値 10 を取得します)
user_id cont bid_on_prd_id winner_on_bid_prod_id
1 1 10 (null)
2 4 10,20,30,40 10,40
3 1 20 20
4 1 30 30