Postgres: Как я могу ограничить свой запрос, чтобы вернуть одно предприятие? - PullRequest
0 голосов
/ 11 сентября 2018

Мой запрос возвращает оба предприятия с префиксным именем, и я хочу ограничить его одним.

    SELECT e.company,
       to_char(a.timestamp, 'yyyy/mm')AS "Year, Month",
       count(1)AS "Total Actions"
FROM activities a
JOIN users u ON a.trackid=u.trackid
JOIN enterprises e ON u.company=e.company
WHERE TIMESTAMP > (CURRENT_DATE - interval '12 months')
  AND user_state = 'active'
  AND user_type != 'BAR'
  AND enterprise LIKE 'Foo Enterprise'
  And enterprise != 'Foo Cyber'
  AND LEFT(actionname, 4) NOT IN
    (SELECT actionname
     FROM Actions
     WHERE action_group='NoUserAction')
GROUP BY e.company,
         to_char(a.timestamp, 'yyyy/mm')
ORDER BY to_char(a.timestamp, 'yyyy/mm') DESC, e.company

В моих результатах отображаются «Foo Enterprise» и «Foo Cyber», где я не хочу видеть «Foo Cyber».

Пример данных, возвращаемых этим запросомдаже использование NOT LIKE «% cyber%» выглядит следующим образом:

Foo Cyber ​​2018/09 192

Foo Enterprise 2018/09 191

Foo Cyber ​​2018/08 406

Foo Enterprise 2018/08 1457

Foo Cyber ​​2018/07 2144

Foo Enterprise 2018/07 1106

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Эта логика:

WHERE  . . .
      AND enterprise LIKE 'Foo Enterprise'
      AND enterprise != 'Foo Cyber'
       . . .

может возвращать только 'Foo Enterprise' (все логические выражения связаны с использованием AND).Первое условие довольно ограничивающее - больше, чем !=.

Я думаю, что ваш фактический запрос немного отличается.

0 голосов
/ 11 сентября 2018

Не могли бы вы попробовать изменить условие запроса в следующих примерах:

  And enterprise not like 'Foo Cyber'

ИЛИ

И ниже (предприятие) не похоже на '% cyber%'

Ваш запрос должен работать так, чтобы что-то происходило с пробелами или в верхнем / нижнем регистре.

Обновление

Проблема в том, что вы отображаете e.company, но пытаетесь фильтровать с помощью enterrise.

Пожалуйста, измените вашу переменную на e.company.Итак, Пример:

`И e.company не похожа на 'Foo Cyber'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...