Представьте таблицу фруктов градуированных по шкале от 1 до 10.Postgresql Топ N элементы из группы, где N является переменной
id, fruit, grade
1, Apple, 1
2, Orange, 5
3, Apple, 4
4, Apple, 7
5, Orange, 4
и порядок таблица:
order_id, item, quantity
10, apple, 2
10, orange 1
Запроса для Приказ № 10 говорит мне, что мне нужно отправить 2 яблока и 1 апельсин.
Есть ли способ присоединиться к группе из 2 лучших яблок и выбрать один из лучших фруктов, а также 1 лучший апельсин, такой как результат с таблицей выше: 1,3,5?
result_table
order, fruit_id
10, 1
10, 3
10, 5
Я уверен, я мог понять, как вернуть статический номер из каждой группы, а переменная счетчика из каждой группы топала меня. Есть ли способ сделать это?
Очень хорошо! Теперь я могу начать свою успешную карьеру в качестве дистрибьютора фруктов! (Конечно, моя настоящая проблема не имеет ничего общего с фруктами, но ваше решение прекрасно абстрагируется). –
Для чего Postgres предоставляет строковый тип без учета регистра в модуле ['citext'] (http://www.postgresql.org/docs/9.3/static/citext.html). –