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
받기 :나는 위의 표에서이 결과를 원하는 최고 금액, 제품의 수/사용자
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 |
:
먼저 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 = 2는 제품 10,20,30,40 (prd_id에 대한 입찰)에 입찰하므로 그의 입찰 cont = 4 ... 10,40 (bidd prod_id에서 우승)에서 우승했습니다 ..WHY ONLY 10,40 30이 아닌 ... bcz user_id = 4는 amt = 100 인 amd = 100 및 amt = 100 인 user_id = 2에 대한 입찰가를가집니다. 그러나 첫 번째 입찰가는 prd = 30에 대한 사용자 = 4에 의해 결정되므로 prd = 30 (동일한 amt에 대해)
아래 질문을 시도하면 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`
: 두 번째 by user_id
를 들어
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
내가 쿼리 될 것입니다 무엇을 얻고 있지 않다 (user_id,disc
적절한 오지 않아).
감사
UPDATE : HARSHIL에 대한
감사 : user_id를에 대한 하지만 PRD_ID 잘 작동 : 초 http://www.sqlfiddle.com/#!9/e04063/1 :
하지만 좀 더 기입 한 후, 난이 버그를 발견 http://www.sqlfiddle.com/#!9/5325a6/5/1 (첫 번째 쿼리)
(210)하지만 나는 다음과 같이합니다 : 널 (null)이없는
가 null로
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
이을 USER_ID USER_ID (하지만 내 WAMP 서버에 내가 USER_ID = 대한 winner_on_bid_prd_id에 널 (null)이 표시되지 않습니다 1, 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
은'user_id' 및 추가 'disc' GROUP BY' –
'로 난 PRD_ID 266 디스크 그룹화 할 경우 .. . 그 결과는 prd_id에 의해 그룹없이 출력 해주세요.모든 그룹에 대해 하나의 연속입니다. 모든 값을 나열합니다. – user3209031
그룹에서 쉼표로 구분 된 목록을 얻으려면'GROUP_CONCAT'을 사용하십시오. – Barmar