Я эта таблица заполнена следующим образом http://sqlfiddle.com/#!2/3736a/4, что я пытаюсь сделать это следующее:Заказать строки с определенными параметрами
У меня есть п группа имен (в данных случае 4 названий групп: КАФЕ Nescafe, КАФЕ LEGAL, CAFE INTERNA, null) из столбца nom_agrupacion, и мне нужно сначала отсортировать их по nom_agrupacion (название группы), а затем по другому столбцу, который является costo.
Запрос сделать это это
SELECT * FROM bby_venta_co WHERE promocion_id = 100000189
AND ti = 153
AND ffi = 12
AND ci = 1
ORDER BY nom_agrupacion DESC, costo DESC;
и получить это
ID DTTI TI FFI CI PROMOCION_ID CODIGO_BARRAS COSTO NOM_AGRUPACION
53 1101 153 12 1 100000189 7501001602727 34.55 CAFE NESCAFE
55 1102 153 12 1 100000189 7501001602727 34.55 CAFE NESCAFE
62 1107 153 12 1 100000189 7501059224841 19.45 CAFE NESCAFE
65 1108 153 12 1 100000189 17501052411115 28.3 CAFE LEGAL
66 1109 153 12 1 100000189 17501052411115 28.3 CAFE LEGAL
67 1110 153 12 1 100000189 7501052411118 24.8 CAFE LEGAL
57 1103 153 12 1 100000189 7501052411118 24.8 CAFE LEGAL
61 1106 153 12 1 100000189 17501052418732 55.6 CAFE INTERNA
52 1100 153 12 1 100000189 27501052418739 32.6 CAFE INTERNA
51 1099 153 12 1 100000189 27501052418739 32.6 CAFE INTERNA
60 1105 153 12 1 100000189 7501052418520 19.35 CAFE INTERNA
59 1104 153 12 1 100000189 7501000112388 12.9 (null)
68 1111 153 12 1 100000189 7501000112388 12.9 (null)
Но мне нужно сортировать информацию, так что я могу получить это: Принесите первую строку каждого имени группы (Я получил 4 балла по нулевой мере, как и группа), затем принесите вторую строку каждой группы и так далее, чтобы получить что-то вроде этого
ID DTTI TI FFI CI PROMOCION_ID CODIGO_BARRAS COSTO NOM_AGRUPACION
53 1101 153 12 1 100000189 7501001602727 34.55 CAFE NESCAFE
66 1109 153 12 1 100000189 17501052411115 28.3 CAFE LEGAL
61 1106 153 12 1 100000189 17501052418732 55.6 CAFE INTERNA
59 1104 153 12 1 100000189 7501000112388 12.9 (null)
55 1102 153 12 1 100000189 7501001602727 34.55 CAFE NESCAFE
65 1108 153 12 1 100000189 17501052411115 28.3 CAFE LEGAL
52 1100 153 12 1 100000189 27501052418739 32.6 CAFE INTERNA
68 1111 153 12 1 100000189 7501000112388 12.9 (null)
62 1107 153 12 1 100000189 7501059224841 19.45 CAFE NESCAFE
57 1103 153 12 1 100000189 7501052411118 24.8 CAFE LEGAL
51 1099 153 12 1 100000189 27501052418739 32.6 CAFE INTERNA
60 1105 153 12 1 100000189 7501052418520 19.35 CAFE INTERNA
Возможно ли это в одном запросе?
Я попытался, по крайней мере, принести первую строку каждой группы один раз, но мой запрос не работает должным образом:
SELECT * FROM bby_venta_co WHERE promocion_id = 100000189
AND ti = 153
AND ffi = 12
AND ci = 1
GROUP BY costo, nom_agrupacion
ORDER BY nom_agrupacion DESC, costo DESC;
Я использую группу, чтобы принести первую единую цену, а затем довести единую nom_agrupacion но кажется, что он только читает стоимость, и если я использую только группу по nom_agrupacion, это не приводит мне строки столбца costo с самыми высокими значениями.
Любая помощь будет оценена.
Многое большое спасибо. Не могли бы вы объяснить запрос только для уточнения, потому что я понятия не имею, что вы там делали. – Blackmore
Добавлено объяснение сообщения, поскольку это было немного долго, надеюсь, что это поможет. – vollie
Это действительно помогло, еще раз спасибо за объяснение. – Blackmore