我有两个postgresql表:
table name column names
----------- ------------------------
login_log ip | etc.
ip_location ip | location | hostname | etc.
Run Code Online (Sandbox Code Playgroud)
我想得到每个login_log没有行的IP地址ip_location.
我尝试了这个查询,但它抛出了语法错误.
SELECT login_log.ip
FROM login_log
WHERE NOT EXIST (SELECT ip_location.ip
FROM ip_location
WHERE login_log.ip = ip_location.ip)
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)ERROR: syntax error at or near "SELECT" LINE 3: WHERE NOT EXIST (SELECT ip_location.ip`
我也想知道这个查询(通过调整使其工作)是否是用于此目的的最佳性能查询.
我需要实现以下查询
SELECT *
FROM friend
WHERE ( friend.id1, friend.id2 )
NOT IN (SELECT id1,
id2
FROM likes)
Run Code Online (Sandbox Code Playgroud)
但NOT IN无法在多列上实现.我该如何编写此查询
我的表中有重复的行,我想以最有效的方式删除重复项,因为表很大.经过一番研究,我得出了这个问题:
WITH TempEmp AS
(
SELECT name, ROW_NUMBER() OVER(PARTITION by name, address, zipcode ORDER BY name) AS duplicateRecCount
FROM mytable
)
-- Now Delete Duplicate Records
DELETE FROM TempEmp
WHERE duplicateRecCount > 1;
Run Code Online (Sandbox Code Playgroud)
但它只适用于SQL,而不适用于Netezza.它似乎不喜欢DELETE后面的WITH条款?
我的查询的目标是返回国家名称及其国家元首,如果它的headofstate名称以A开头,并且该国家的首都使用嵌套查询的人数超过100,000人.
这是我的查询:
SELECT country.name as country,
(SELECT country.headofstate
from country
where country.headofstate like 'A%')
from country, city
where city.population > 100000;
Run Code Online (Sandbox Code Playgroud)
我试过反转它,把它放在where子句等.我没有得到嵌套查询.我只是得到错误,比如"子查询返回多行"等等.如果有人可以帮助我如何订购,并解释为什么它需要以某种方式,这将是伟大的.
sql ×4
database ×2
postgresql ×2
duplicates ×1
exists ×1
left-join ×1
nested ×1
netezza ×1
null ×1