Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
16.06.2021, 13:44
|
|||
---|---|---|---|
|
|||
Проблема подсчета кол-ва созданных и измененных (помощь в скрипте) |
|||
#18+
Добрый день, Есть таблица из 5 полей Trademark - торговая марка Product - продукт данной марки Creation - дата создания Change - дата изменения User - пользователь, изменивший запись (может принимать значение User1, User2 и User3) Creation для каждой строки продукта одинакова Необходимо для каждого Trademark рассчитать: - кол-во продуктов, созданных с 2020 года - кол-во продуктов, созданных в 2019 году - кол-во продуктов, измененных с 2020 года (может не совпадать с предыдущим пунктом, т.к. некоторые созданы до 2020 года) - кол-во продуктов, измененных пользователем User1 с 2020 года - кол-во продуктов, изменненных User2 c 2020 года Желательно выполнить одним запросом Пытался использовать Count(distinct), но проблема в том, что условие для кол-ва созданных и измененных действует для разных столбцов, а оконные функции возвращают тоже по условию основного селекта. Есть ли возможность прописать условия отбора внутри самой оконной функции или Count? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.06.2021, 14:09
|
|||
---|---|---|---|
Проблема подсчета кол-ва созданных и измененных (помощь в скрипте) |
|||
#18+
Tayler_Divers Есть ли возможность прописать условия отбора внутри самой оконной функции или Count? Да запросто. Только надо использовать SUM. Код: sql 1.
В MySQL TRUE есть алиас единицы, а FALSE - алиас нуля. Так что SUM() просто подсчитает количество записей, для которых условие истинно. Получится типа Код: sql 1. 2. 3. 4. 5. 6. 7.
Условие во WHERE позволяет не обрабатывать заведомо неподходящие записи. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.06.2021, 14:16
|
|||
---|---|---|---|
|
|||
Проблема подсчета кол-ва созданных и измененных (помощь в скрипте) |
|||
#18+
Akina, А как учесть уникальность? например, есть 3 строки для одного продукта Printer 10/03/2020 11/04/2020 User1 Printer 10/03/2020 15/04/2020 User2 Printer 10/03/2020 20/04/2020 User2 Sum по идее будет выводить значение 3 по дате создания,поскольку каждая строка будет попадать под условие "создано после 2020 года" А как прописать грамотно Count с условием в таком случае? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.06.2021, 15:15
|
|||
---|---|---|---|
Проблема подсчета кол-ва созданных и измененных (помощь в скрипте) |
|||
#18+
В этом случае нужно не просто условие, а вывод поля/выражения, которое определяет уникальность. Т.е. не Код: sql 1.
а Код: sql 1.
CASE вернёт или product (если условие выполняется) или NULL. COUNT() проигнорирует NULL и подсчитает количество уникальных product. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=47&mobile=1&tid=1828034]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 298ms |
total: | 441ms |
0 / 0 |