|
|
|
Подсчет COUNT по нескольким критериям
|
|||
|---|---|---|---|
|
#18+
Добрый день. Есть запрос Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Тут я получаю общее количество по записи DRIVERS.NUM, CREWS.CODE as "Позывной", DRIVERS.NAME as "ФИО" Сколько одинаковых значений, такое значение получаем в записи "Всего". Есть еще одно поле ORDERS.TARIF_ID с разными значениями, например (10, 15, 20) Необходимо вывести дополнительные колонки, которые бы отображали разделение по принципу: Код: plaintext 1. 2. 3. Что-то не знаю куда копать. Подскажите как лучше сделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 12:46 |
|
||
|
Подсчет COUNT по нескольким критериям
|
|||
|---|---|---|---|
|
#18+
Современный способ называется pivot. Старый делается через case: sum(case when ORDERS.TARIF_ID = 10 then 1 end) "тип10", sum(case when ORDERS.TARIF_ID = 15 then 1 end) "тип15", sum(case when ORDERS.TARIF_ID = 20 then 1 end) "тип20" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 12:53 |
|
||
|
Подсчет COUNT по нескольким критериям
|
|||
|---|---|---|---|
|
#18+
Гхостик, спасибо. Помогло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2015, 15:16 |
|
||
|
Подсчет COUNT по нескольким критериям
|
|||
|---|---|---|---|
|
#18+
А как можно в последней строке получить сумму всех значений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2015, 10:30 |
|
||
|
Подсчет COUNT по нескольким критериям
|
|||
|---|---|---|---|
|
#18+
А также номерация строк в выводимом запросе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2015, 10:39 |
|
||
|
Подсчет COUNT по нескольким критериям
|
|||
|---|---|---|---|
|
#18+
Fanat MBА как можно в последней строке получить сумму всех значений? union того же запроса, но без груп бая. Нумерация от субд зависит, в оракле rownum. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2015, 20:26 |
|
||
|
Подсчет COUNT по нескольким критериям
|
|||
|---|---|---|---|
|
#18+
Melkomyagkii_newbi, субд FIREBIRD ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2015, 14:12 |
|
||
|
Подсчет COUNT по нескольким критериям
|
|||
|---|---|---|---|
|
#18+
Fanat MBА как можно в последней строке получить сумму всех значений? Это делается средствами построителя отчётов, называется Footer. Нумерация строк - тоже. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2015, 14:15 |
|
||
|
Подсчет COUNT по нескольким критериям
|
|||
|---|---|---|---|
|
#18+
Fanat MBА также номерация строк в выводимом запросе Мужчина, это тебе не эксель... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2015, 16:18 |
|
||
|
Подсчет COUNT по нескольким критериям
|
|||
|---|---|---|---|
|
#18+
Fanat MB, через SEQUENCE, например ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2015, 11:48 |
|
||
|
Подсчет COUNT по нескольким критериям
|
|||
|---|---|---|---|
|
#18+
Fanat MBMelkomyagkii_newbi, субд FIREBIRD Спроси в профильном профиле , а то тебе щас тут насоветуют. Уже и сиквенс и какие-то построители отчетов. В оракле эта задача элементарно запросом решается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2015, 12:51 |
|
||
|
Подсчет COUNT по нескольким критериям
|
|||
|---|---|---|---|
|
#18+
Melkomyagkii_newbiСпроси в профильном профиле Думаешь, там я дам другой ответ?.. В любом случае и нумерация и футер это работа построителя отчётов или другой морды. Грузить ею сервер будут только изверги. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2015, 13:50 |
|
||
|
Подсчет COUNT по нескольким критериям
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovMelkomyagkii_newbiСпроси в профильном профиле Думаешь, там я дам другой ответ?.. В любом случае и нумерация и футер это работа построителя отчётов или другой морды. Грузить ею сервер будут только изверги. Нумерация - очень дешевая операция, футер зависит от объема, но если все необходимое для выборки влазит в память, то тоже не дорого даже в варианте который я навскидку предложил(юнион того же запроса без полей из груп бая и собственно груп бая), возможно можно как-то и оптимальней сделать. Ну зависит от интенсивности использования и типа сервера - скорее всего ничего серверу не будет, переносить на морду - экономия на спичках. А морду грузить не жалко? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2015, 14:48 |
|
||
|
Подсчет COUNT по нескольким критериям
|
|||
|---|---|---|---|
|
#18+
Вопрос скорее для "Разработки информационных систем", а не этого форума Вынесение нумерации и футера в морду плохо тем что логика начинает размазываться по двум местам. Завтра появится требование "а давайте суммировать не все, а по некоему критерию" - надо будет лезть и править именно отчет, а не запрос. Если на "поддерживаемость" приниципально забить и смотреть только с точки зрения производительности - да, на клиенте это делать дешевле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2015, 15:17 |
|
||
|
Подсчет COUNT по нескольким критериям
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинВопрос скорее для "Разработки информационных систем", а не этого форума Вынесение нумерации и футера в морду плохо тем что логика начинает размазываться по двум местам. Завтра появится требование "а давайте суммировать не все, а по некоему критерию" - надо будет лезть и править именно отчет, а не запрос. А уже сегодня пользователь запроса пересортирует его по какому-то критерию и итог "уползет" куда-то в середину набора данных. Так что если забивать на поддерживаемость, то - да, на сервере делать быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2015, 15:58 |
|
||
|
Подсчет COUNT по нескольким критериям
|
|||
|---|---|---|---|
|
#18+
miwaonlineКот МатроскинВопрос скорее для "Разработки информационных систем", а не этого форума Вынесение нумерации и футера в морду плохо тем что логика начинает размазываться по двум местам. Завтра появится требование "а давайте суммировать не все, а по некоему критерию" - надо будет лезть и править именно отчет, а не запрос. А уже сегодня пользователь запроса пересортирует его по какому-то критерию и итог "уползет" куда-то в середину набора данных. Так что если забивать на поддерживаемость, то - да, на сервере делать быстрее. Ну во-первых - нет, не уползет. Во-вторых - даже если бы уползал, это означало бы проблемы не с поддерживаемостью,а собственно с соответствием текущей реализации постановке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2015, 16:56 |
|
||
|
Подсчет COUNT по нескольким критериям
|
|||
|---|---|---|---|
|
#18+
Melkomyagkii_newbiтоже не дорого даже в варианте который я навскидку предложил(юнион того же запроса без полей из груп бая и собственно груп бая), возможно можно как-то и оптимальней сделать Ага: выкинуть union и получать данные для футера отдельным запросом. Но это всё равно будет двойной проход по данным, который ничем кроме лени разработчика не объяснить. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2015, 17:02 |
|
||
|
Подсчет COUNT по нескольким критериям
|
|||
|---|---|---|---|
|
#18+
Кот Матроскинmiwaonlineпропущено... А уже сегодня пользователь запроса пересортирует его по какому-то критерию и итог "уползет" куда-то в середину набора данных. Так что если забивать на поддерживаемость, то - да, на сервере делать быстрее. Ну во-первых - нет, не уползет. Получил пользователь из базы вот такой набор данных ФамилияСуммаИванов100Петров200Итого300 в каком-то гриде, или - что довольно часто случается с отчетами - в екселе. Не знаю, как ваш ексель, а мой после сортировки по фамилии засовывает "Итого" всередину списка. Кот МатроскинВо-вторых - даже если бы уползал, это означало бы проблемы не с поддерживаемостью,а собственно с соответствием текущей реализации постановке. Да-да, не автор запроса альтернативно мыслит, а "соответствие такущей реализации постановке" в табличном редакторе неправильное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2015, 17:18 |
|
||
|
Подсчет COUNT по нескольким критериям
|
|||
|---|---|---|---|
|
#18+
miwaonlineКот Матроскинпропущено... Ну во-первых - нет, не уползет. Получил пользователь из базы вот такой набор данных ФамилияСуммаИванов100Петров200Итого300 А кто сказал, что он получил такой набор данных? Реализация суммирования на сервере совершенно не обязывает получать именно такой набор данных - это вполне могут быть 2 отдельных набора данных. miwaonlineКот МатроскинВо-вторых - даже если бы уползал, это означало бы проблемы не с поддерживаемостью,а собственно с соответствием текущей реализации постановке. Да-да, не автор запроса альтернативно мыслит, а "соответствие такущей реализации постановке" в табличном редакторе неправильное. Это уже, похоже, разговор с голосами в своей голове. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2015, 17:33 |
|
||
|
Подсчет COUNT по нескольким критериям
|
|||
|---|---|---|---|
|
#18+
Кот Матроскин, Да, действительно, что-то я дверью ошибся, прошу извинить. Не подскажете, кстати, где это один запрос - два отдельных набора данных? Чтобы и я туда случайно не зашел людей смущать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2015, 18:15 |
|
||
|
Подсчет COUNT по нескольким критериям
|
|||
|---|---|---|---|
|
#18+
miwaonline Не подскажете, кстати, где это один запрос - два отдельных набора данных? Конечно подскажу - там же, в Вашей голове. ТС спросил как можно в последней строке получить сумму всех значений, никакого условия "в рамках того же запроса", как видим, нет, вопрос касается итогового отображения в отчетной системе (а если бы было не так, то разговоры про footer были бы изначально бессмысленными) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 09:32 |
|
||
|
Подсчет COUNT по нескольким критериям
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинА кто сказал, что он получил такой набор данных? Реализация суммирования на сервере совершенно не обязывает получать именно такой набор данных - это вполне могут быть 2 отдельных набора данных. miwaonlineНе подскажете, кстати, где это один запрос - два отдельных набора данных Кот МатроскинКонечно подскажу - там же, в Вашей голове. Да, действительно, дверь определенно не та. Странно, конечно: пишет, что "Проектирование БД", а внутрях неонка специалист по голосам в голове, ведущий сам с собой беседу. Еще раз извините. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2015, 10:14 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38981909&tid=1540530]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
169ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 495ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...