Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Postgres:如何限制我的查询返回一个企业?_Sql_Postgresql - Fatal编程技术网

Sql Postgres:如何限制我的查询返回一个企业?

Sql Postgres:如何限制我的查询返回一个企业?,sql,postgresql,Sql,Postgresql,我的查询不断返回两个具有前缀名称的企业,我想将其限制为一个 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 TIMEST

我的查询不断返回两个具有前缀名称的企业,我想将其限制为一个

    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”

此查询返回的数据示例(即使使用了不相似的“%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能否尝试将查询条件更改为以下示例:

  And enterprise not like 'Foo Cyber'

和较低的(企业级)不象“%cyber%”

您的查询应该可以正常工作,因此可能会出现空格或大写/小写的情况

更新 问题是您正在显示
e.company
,但您正在尝试使用enterrise进行筛选

请将变量更改为
e.company
。例如:

`e.company不喜欢“Foo Cyber”

这种逻辑:

WHERE  . . .
      AND enterprise LIKE 'Foo Enterprise'
      AND enterprise != 'Foo Cyber'
       . . .
只能返回
'Foo Enterprise'
(所有布尔表达式都使用
连接)。第一个条件相当严格——比
更严格=


我认为您的实际查询有点不同。

试试这个“企业”和“Foo Cyber”不一样。你能给我们看一张有结果的表格吗?你能更改或添加<代码>e.公司不喜欢。您正在显示e.company
,但您正在尝试使用enterprise进行筛选。这不匹配。
WHERE TIMESTAMP>…
请限定您的引用。(而且:你的问题不可读。而且:
时间戳
是一个保留字)我得到了相同的结果:
其中。还有像“Foo enterprise”和“enterprise!”Foo Cyber’
Foo Cyber 2018/09 192 Foo Enterprise 2018/09 191 Foo Cyber 2018/08 406 Foo Enterprise 2018/081457@ForrestBear . . . 此逻辑无法返回
'Foo-Cyber'
,因为它与
'Foo-Enterprise'
不匹配。时期您的连接器都是
s,这不匹配。将这两个企业变量更新为e.company解决了此问题。非常感谢。