Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.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
带有AND/OR运算符的错误PostgreSQL请求_Sql_Postgresql - Fatal编程技术网

带有AND/OR运算符的错误PostgreSQL请求

带有AND/OR运算符的错误PostgreSQL请求,sql,postgresql,Sql,Postgresql,我的postresql请求是否有问题?: SELECT DISTINCT COUNT(email) FROM data WHERE email != '' AND gender='mme' OR gender='mlle' AND yearofbirth BETWEEN 1973 AND 2003 我们能按我们的需要设置“AND”和“AND”或“operator”吗? 由于“和2003年至1973年之间的出生年份”声明不起作用,请求结果是以下结果: SELECT DISTINCT COUN

我的postresql请求是否有问题?:

SELECT DISTINCT COUNT(email) FROM data 
WHERE email != '' AND gender='mme' OR gender='mlle' 
AND yearofbirth BETWEEN 1973 AND 2003
我们能按我们的需要设置“AND”和“AND”或“operator”吗? 由于“和2003年至1973年之间的出生年份”声明不起作用,请求结果是以下结果:

SELECT DISTINCT COUNT(email) FROM data 
WHERE email != '' AND gender='mme' OR gender='mlle'

同一问题:

SELECT DISTINCT COUNT(email) FROM data 
WHERE email != '' AND gender='mme' OR gender='mlle' 
AND yearofbirth < 2003 AND yearofbirth > 1973
从数据中选择不同计数(电子邮件)
哪里有电子邮件!=''和gender='mme'或gender='mlle'
出生年份<2003年,出生年份>1973年

谢谢你的帮助

在这种情况下,显然不需要选择不同的
。您的查询是一个聚合查询,没有
分组依据
,因此它只返回一行。我怀疑您真的想要
选择COUNT(DISTINCT)
,一个完全不同的野兽

SELECT DISTINCT COUNT(email) 
     FROM data WHERE email != '' AND  ( gender='mme' OR gender='mlle') AND 
         yearofbirth BETWEEN 1973 AND 2003
我也不确定您在
WHERE
子句中的意图。我怀疑:

SELECT COUNT(DISTINCT email)
FROM data 
WHERE email <> '' AND
      (gender IN 'mme', 'mlle') AND 
      yearofbirth BETWEEN 1973 AND 2003;
选择计数(不同的电子邮件)
从数据
其中电子邮件“”和
(mme和mlle中的性别)和
1973年至2003年之间的出生年份;
虽然没有括号,但您有:

SELECT COUNT(DISTINCT email)
FROM data 
WHERE (email <> '' AND gender = 'mme') OR
      (gender = 'mlle' AND yearofbirth BETWEEN 1973 AND 2003);
选择计数(不同的电子邮件)
从数据
其中(电子邮件“”,性别='mme')或
(性别=‘mlle’和1973年至2003年之间的出生年份);

使用括号。想象或是“+”和是“.”,写(a+b)。c不等于写a+b.c!