|
Проблема подсчета кол-ва созданных и измененных (помощь в скрипте)
|
|||
---|---|---|---|
#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, 13:44 |
|
Проблема подсчета кол-ва созданных и измененных (помощь в скрипте)
|
|||
---|---|---|---|
#18+
Tayler_Divers Есть ли возможность прописать условия отбора внутри самой оконной функции или Count? Да запросто. Только надо использовать SUM. Код: sql 1.
В MySQL TRUE есть алиас единицы, а FALSE - алиас нуля. Так что SUM() просто подсчитает количество записей, для которых условие истинно. Получится типа Код: sql 1. 2. 3. 4. 5. 6. 7.
Условие во WHERE позволяет не обрабатывать заведомо неподходящие записи. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2021, 14:09 |
|
Проблема подсчета кол-ва созданных и измененных (помощь в скрипте)
|
|||
---|---|---|---|
#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, 14:16 |
|
Проблема подсчета кол-ва созданных и измененных (помощь в скрипте)
|
|||
---|---|---|---|
#18+
В этом случае нужно не просто условие, а вывод поля/выражения, которое определяет уникальность. Т.е. не Код: sql 1.
а Код: sql 1.
CASE вернёт или product (если условие выполняется) или NULL. COUNT() проигнорирует NULL и подсчитает количество уникальных product. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2021, 15:15 |
|
|
start [/forum/topic.php?fid=47&fpage=8&tid=1828034]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
74ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 182ms |
0 / 0 |