我几天前才开始学习 SQL,我想了解在构建子查询时我应该以何种顺序使用 SELECT 语句。这是我正在努力完成的一个简单示例。
我有两个表 - 一个指定客户列表的人口统计数据,另一个详细说明他们是如何听说我们公司的。
在第一个表中,我的客户在性别列中被列为男性或女性,然后在下一列中指定了他们的种族(高加索人、非裔美国人、西类牙裔等)。
在第二个表中,有一个推荐列,指定他们是如何听说我们公司的(电视、广播、网站等)。
我想先按性别过滤客户(我只想显示女性数据),然后我想统计表中列出的每个种族的客户通过我们的网站找到我们的次数。
SELECT Ethnicity, COUNT(Referral)
FROM Demographics, Marketing
WHERE Demographics.id = Marketing.source_id
AND Referral = 'website'
/* confused about how to put subquery here saying Gender = 'Female' */
ORDER BY Ethnicity
基本上,我对如何正确包含子查询以及是否以正确的顺序进行过滤感到困惑。
但我希望我的表格看起来像这样:
/*Data is shown for ONLY Females */
Referral Caucasian African American Hispanic Asian
website 7 19 14 22
对不起,这段代码可能真的很乱。如果可以,请帮忙。
最佳答案
根据您的描述,您不需要子查询:
SELECT Ethnicity, COUNT(Referral)
FROM Demographics, Marketing
WHERE Demographics.id = Marketing.source_id
AND Referral = 'website'
AND Gender = 'Female'
ORDER BY Ethnicity
...请注意,这为您提供了与您所显示的结果集不同的结果集,但是,对于种族,每一行都要计数。
关于SQL 子查询 - 您执行 SELECT 语句的顺序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6405780/