MySQL: определение максимального количества ставок на товары, только если они были выбраны указанным покупателем - PullRequest
0 голосов
/ 27 февраля 2020

Схема базы данных MySQL имеет вид:

Ставки (идентификатор, покупатель, сумма)

Вопрос: для каждого элемента, который является покупателемNum 'ab c 'имеет ставку, укажите идентификатор, количество различных ставок, сделанных на нем (всеми пользователями, а не только' ab c ') и самую высокую ставку.

То, что я пробовал, это

SELECT id, COUNT(*), MAX(amount)
FROM Bids
WHERE buyer = "abc"
GROUP BY id

Но это количество учитывает только количество раз, когда 'ab c' выставляет ставку для идентификатора этого предмета. Я пытался сделать какое-то соединение, чтобы счетчик превысил условие «покупатель =» ab c », но я очень плохо знаком с MySQL, поэтому я изо всех сил. Помогите пожалуйста!

1 Ответ

0 голосов
/ 27 февраля 2020
SELECT b.id,
       a.total,
       MAX(b.amount) 
  FROM Bids b
  LEFT JOIN (select count(*) as total,id from Bids GROUP BY id) a 
    on b.id = a.id
 WHERE buyer = "abc" 
 GROUP 
    BY b.id

Надеюсь, все будет хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...