Форум программистов, компьютерный форум, киберфорум
PostgreSQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 04.03.2020
Сообщений: 3

Присоединение таблицы к самой себе

04.03.2020, 22:13. Показов 1411. Ответов 3

Студворк — интернет-сервис помощи студентам
Добрый вечер. Прошу помощи.
Пытаюсь вывести данные в необходимом мне формате. Проблема в том что если я соединяю по дате, то в строках где prob равен
411 или 510, plate_count дублируется из правой таблицы, а мне нужно чтобы там был null или 0.
Если же я соединяю по prob, то тогда мне необходимо избавится от дублирующих строк с prob = 500. Пробовал это сделать с помощью distinct - но в любом случае удаляет не те строки которые мне надо.
Прошу подсказать в какую сторону мне смотреть.
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
WITH cte1 AS (
  SELECT date_trunc('day', created_at) AS DATE, problem, COUNT(id) 
  FROM event_event 
  WHERE problem IS NOT NULL AND problem <> 600 AND problem <> 220
  AND created_at BETWEEN '2020-02-10' AND '2020-03-04'
  GROUP BY DATE, problem
), cte2 AS (
  SELECT  date_trunc('day', created_at) AS DATE, problem, COUNT(id)
  FROM event_event
  WHERE problem = 500 AND plate_number = ' '
  AND created_at BETWEEN '2020-02-10' AND '2020-03-04'
  GROUP BY DATE, problem
)
SELECT cte1.date AS dt, cte1.problem AS prob, cte1.count AS total, cte2.count AS plate_count FROM cte1 LEFT JOIN cte2 ON cte1.date = cte2.date
ORDER BY dt DESC
Миниатюры
Присоединение таблицы к самой себе  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.03.2020, 22:13
Ответы с готовыми решениями:

Обращение ф-и замыкания к самой себе
Есть ф-я, которая должна производить рекурсивный обход массива любой вложенности, по аналогии с тем, что нагуглил, только моя подходит...

Форма, отправляющая сведения самой себе
Имеется asp-скрипт с формой отправляющей сведения самой себе. После нескольких таких отправок для того чтобы вернуться на главную страницу...

Как отправить значения формы самой себе??
Здравствуйте!! Как отправить значения формы той же странице на которой находится форма?? Т.е. на странице есть форма, после нажатия...

3
1267 / 980 / 385
Регистрация: 02.09.2012
Сообщений: 3,027
05.03.2020, 09:11
может плохо понимаю, но сделайте левое соединение и по дате и по prob.
0
0 / 0 / 0
Регистрация: 04.03.2020
Сообщений: 3
05.03.2020, 09:57  [ТС]
Ранее прикрепленный скриншот это левое присоединение по дате.
А этот скрин - левое по problem
Миниатюры
Присоединение таблицы к самой себе  
0
0 / 0 / 0
Регистрация: 04.03.2020
Сообщений: 3
05.03.2020, 10:42  [ТС]
Получается в первом случае мне не нужны значения в столбце plate_count если prob <> 500. Здесь строки с prob = 500 из двух таблиц он соединяет правильно.
А во втором случае мне не нужны повторные строки с prob = 500. Если применяю distinct on (prob, date) или (prob), то он оставляет строки с неправильным соединением

Добавлено через 35 минут
Решил проблему использовав case.
select cte1.date as dt, cte1.problem as prob, cte1.count as total, (case when cte1.problem <> 500 then 0 else cte2.count end) from cte1 left join cte2 on cte1.date = cte2.date
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.03.2020, 10:42
Помогаю со студенческими работами здесь

Присоединение таблицы с картинками к другой таблице
здравствуйте. иитересует такой вопрос. есть таблица с полями id_news(ключевое_поле айди_новости),...

Бывает ли чтобы программа требовала пароль который содержит в себе адрес перехода необходимый самой проге?
Бывает ли чтобы программа требовала пароль который содержит в себе адрес перехода необходимый самой проге? 0_0

Чистка таблицы средствами самой БД
Доброго времени суток! Подскажите какой нужен запрос к таблице, чтобы она чистила старые записи. Например, если записи, которые были...

Сравнение таблицы самой с собой
Добрый день, уважаемые форумчане! Прошу помощи в следующем вопросе: необходимо найти все записи у которых есть вышестоящий () и...

Объединение таблицы с самой собой
Доброго времени суток. Такой вопрос имеется таблица с такой структуры id, secret_key ,date, status задача такая, найти все значения,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru