我的查询有什么问题?
What is Wrong with my Query?
我正在为我所在的数据训练营开展一个项目,并且我正在与三个 table 一起工作。在这些 table 中,我试图找到更多关于该数据集中用户的信息。我想回答的一些问题是...
- 有多少用户在日常生活中使用不止一种浏览器?
- 除了firefox,最流行的浏览器是什么?
- 使用多种浏览器的用户最常用的浏览器是什么?
附件是我的table概述(忽略垃圾代码)
这是我遇到问题的查询:
select user_id, q2, q3, q4
from survey
where q2 = '0' or '1' and q3 = '0' or '1' or '2' or '3' and q4 = '0' or '1' or '2' or '3' or '4' or '5'
我想提取 q2、q3、q4 的命名值。我如何正确编写它以便将数据提取到一组中?我想将它拉到一组中,以便我可以导出和导入 excel 并旋转数据。
两个问题:
- 对运算符优先级的误解 - 如果您同时拥有
and
和 or
,请确保您使用 ()
.. 正确包装
- 编译错误 - 在每个
or
之间您必须再次指定比较。 q3 = '0' or '1'
不起作用 -> 更改为 q3 = '0' or q3 = '1'
所以:
select user_id, q2, q3, q4
from survey
where (q2 = '0' or q2 = '1')
and (q3 = '0' or q3 = '1' or q3 = '2' or q3 ='3')
and (q4 = '0' or q4 = '1' or q4 = '2' or q4 = '3' or q4 = '4' or q4 = '5')
现在,更好的方法是使用in
select user_id, q2, q3, q4
from survey
where q2 in ('0','1')
and q3 in ('0','1','2','3')
and q4 in ('0','1','2','3','4','5')
您的查询有问题的是您不能写 q2 = '1' or '2'
。这是无效的语法。使用 in
代替:
where q2 in ('0','1') and q3 in ('0','1','2','3') and q4 in ('0','1','2','3','4','5')
我正在为我所在的数据训练营开展一个项目,并且我正在与三个 table 一起工作。在这些 table 中,我试图找到更多关于该数据集中用户的信息。我想回答的一些问题是...
- 有多少用户在日常生活中使用不止一种浏览器?
- 除了firefox,最流行的浏览器是什么?
- 使用多种浏览器的用户最常用的浏览器是什么?
附件是我的table概述(忽略垃圾代码)
select user_id, q2, q3, q4
from survey
where q2 = '0' or '1' and q3 = '0' or '1' or '2' or '3' and q4 = '0' or '1' or '2' or '3' or '4' or '5'
我想提取 q2、q3、q4 的命名值。我如何正确编写它以便将数据提取到一组中?我想将它拉到一组中,以便我可以导出和导入 excel 并旋转数据。
两个问题:
- 对运算符优先级的误解 - 如果您同时拥有
and
和or
,请确保您使用()
.. 正确包装
- 编译错误 - 在每个
or
之间您必须再次指定比较。q3 = '0' or '1'
不起作用 -> 更改为q3 = '0' or q3 = '1'
所以:
select user_id, q2, q3, q4
from survey
where (q2 = '0' or q2 = '1')
and (q3 = '0' or q3 = '1' or q3 = '2' or q3 ='3')
and (q4 = '0' or q4 = '1' or q4 = '2' or q4 = '3' or q4 = '4' or q4 = '5')
现在,更好的方法是使用in
select user_id, q2, q3, q4
from survey
where q2 in ('0','1')
and q3 in ('0','1','2','3')
and q4 in ('0','1','2','3','4','5')
您的查询有问题的是您不能写 q2 = '1' or '2'
。这是无效的语法。使用 in
代替:
where q2 in ('0','1') and q3 in ('0','1','2','3') and q4 in ('0','1','2','3','4','5')