Учитывая эту таблицу sells
(в MySQL
):
id | person | state | amount
1 | Ringo | CA | 3$
2 | Paul | CA | 10$
3 | John | MA | 2$
4 | Ringo | CA | 6%
5 | Ringo | MA | 12$
Нам нравится создавать SQL-код, чтобы получить для каждого person
, какой он был последним количество, которое он продал в каждом штате - что-то вроде этого:
person | CA | MA
Ringo | 6$ | 12$
Paul | 10$| -
John | - | 2$
Нам также нравится, чтобы этот запрос был достаточно динамичным, поэтому, если будет новая запись с новым состоянием (например, TX), мы получимэто автоматически.
6 | George | TX | 15$
В результате:
person | CA | MA | TX
Ringo | 6$ | 12$ | -
Paul | 10$| - | -
John | - | 2$ | -
George| - | - | 15$
Мы попытались Group by
с этим запросом:
select * from sells where id in(
select max(id) from sells
group by person, state
)
Это, кажется, приносит правильные данныедля наших нужд, но нам нужна помощь, чтобы сделать дополнительный скачок к желаемому результату