powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вычитание SQL запросов
7 сообщений из 7, страница 1 из 1
Вычитание SQL запросов
    #39255111
memult
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, подскажите пожалуйста.Есть два запроса.
Первый:
Код: sql
1.
SELECT DATE_Format(dateR,"%Y-%m-%d") AS dateR, (SELECT COUNT(*) FROM line_data as ln LEFT OUTER JOIN my ON my.id=ln.id_my WHERE ln.dateR <= line_data.dateR) as incCount from line_data GROUP BY dateR';

и его результат:
2016-06-03 - 2 записи
2016-06-06 - 4 записи
2016-06-11 - 5 записей
2016-06-15 - 6 записей
2016-08-05 - 7 записей
Т.е считается количество записей, а потом это количество складывается с предыдущим количеством.По этому запросу строится график (оранжевый).

Второй запрос:
Код: sql
1.
SELECT DATE_Format(dateR,"%Y-%m-%d") AS dateR,Count(*) from line_data LEFT OUTER JOIN my ON my.id=line_data.id_my WHERE my.my="Статус_1" GROUP BY dateR

и его результат:
2016-06-06 -2 записи
2016-06-11 - 1 запись
2016-08-05 - 1 запись.
Т.е показывает сколько записей со статусом=1 было добавлено за эти даты.По этому запросу строится график (Синий)

Подскажите,как получить результат вычитания этих двух запросов (графиков) - как на картинке, где красным показывается график, который нужен. Спасибо.
...
Рейтинг: 0 / 0
Вычитание SQL запросов
    #39255742
buven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
memult,
возможно вот натолкнет на правильные мысли в этом вопросе.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
with line_data (ID,DT,STATUS)as (
select 1,'2016-06-03',1
union all
select 2,'2016-06-03',1 
union all
select 3,'2016-06-06',2 
union all
select 4,'2016-06-06',1
union all
select 5,'2016-06-06',2 
union all
select 6,'2016-06-06',1 
union all
select 7,'2016-06-11',1 
union all
select 8,'2016-06-15',1 
union all
select 9,'2016-08-05',3 
)
select distinct DT,STATUS, 
count(STATUS) over (partition by DT) as QTY, --общее количество записей на дату
count(STATUS) over (partition by DT,STATUS) as QTY_BY_STAT,  --количество записей в дату с определенным статусом
count(STATUS) over (partition by DT) - count(STATUS) over (partition by DT,STATUS) as DIFF --вычитание одного из другого
 from line_data
...
Рейтинг: 0 / 0
Вычитание SQL запросов
    #39255908
memult
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, спасибо за ответ.
Но большинство этих функций не поддерживаются в синтаксисе MySQL. Можете ли подсказать вариант по него?
...
Рейтинг: 0 / 0
Вычитание SQL запросов
    #39255934
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
memult,

нет оконных функций в mySQL.
...
Рейтинг: 0 / 0
Вычитание SQL запросов
    #39255936
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автора, первый из твоих запросов мягко говоря, некорректный.
...
Рейтинг: 0 / 0
Вычитание SQL запросов
    #39255947
memult
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно поконкретнее, что Вас смущает в первом запросе?
...
Рейтинг: 0 / 0
Вычитание SQL запросов
    #39256034
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
memult,

смущает наличие GROUP BY без агрегатных функций.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вычитание SQL запросов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]