Sql 我的问题出了什么问题?

Sql 我的问题出了什么问题?,sql,nested-queries,Sql,Nested Queries,我正在为我所在的数据训练营做一个项目,我正在处理三个表。在这些表中,我试图找到有关此数据集中用户的更多信息。我想回答的一些问题是 有多少用户在日常生活中使用多个浏览器? 除了firefox,最流行的浏览器是什么? 在使用多个浏览器的用户中,最流行的浏览器是什么? 附件是我的表格概览,忽略垃圾代码 这是我遇到的问题: select user_id, q2, q3, q4 from survey where q2 = '0' or '1' and q3 = '0' or '1' or '2' or

我正在为我所在的数据训练营做一个项目,我正在处理三个表。在这些表中,我试图找到有关此数据集中用户的更多信息。我想回答的一些问题是

有多少用户在日常生活中使用多个浏览器? 除了firefox,最流行的浏览器是什么? 在使用多个浏览器的用户中,最流行的浏览器是什么? 附件是我的表格概览,忽略垃圾代码 这是我遇到的问题:

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,请确保使用..正确包装。。 编译错误-在每个或之间必须再次指定比较。q3='0'或'1'不起作用->更改为q3='0'或q3='1' 因此:

现在,一个更好的方法是在


您的查询的错误之处在于,您无法编写q2='1'或'2'。这是无效的语法。在以下情况下使用:


请举例说明您的输出应该是什么样子的。您可以澄清您所说的命名值是什么意思,而且它看起来不像有效的SQL。您使用的是哪种数据库管理系统?并且优先于or:use in:其中'0'中的q2、'1'和'0'中的q3、'1'、'2'、'3'和'0'中的q4、'1'、'2'、'3'、'4'、'5'。JonathonOgden每个问题q2、q3、q4都有一个值列表,如0、1、2、3等,用于代替文本。例如,第二季度的0表示否,我只使用Firefox-这在另一个文档中提供。我只想输出第二季度、第三季度和第四季度的所有结果。我正在使用的程序是Wagg,它是我们用来学习SQL的工具。因此,您希望检索每个问题的文本。在这种情况下,您将不得不连接到另一个表,其中q列值是指向另一个表的键链接。您知道哪个表格存储问题文本吗?谢谢!我还没有用过。这是一个很好的例子。谢谢你的解释。这帮了大忙。In对我来说是新的,多亏了你和trincot,看起来我会在这个项目中大量使用它。我不认为你的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')
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')
where q2 in ('0','1') and q3 in ('0','1','2','3') and q4 in ('0','1','2','3','4','5')