- 为与客户名称
Walmart
相关的所有 web_events 创建一个表格。表格应该包含三列:primary_poc
、事件时间和每个事件的渠道
。此外,你可以选择添加第四列,确保仅选中了Walmart
事件。SELECT a.primary_poc, w.occurred_at, w.channel, a.name FROM web_events w JOIN accounts a ON w.account_id = a.id WHERE a.name = 'Walmart';
- 为每个销售代表对应的区域以及相关的客户创建一个表格,最终表格应该包含三列:区域名称、销售代表名称,以及客户名称。根据客户名称按字母顺序 (A-Z) 排序。
SELECT r.name region, s.name rep, a.name account FROM sales_reps s JOIN region r ON s.region_id = r.id JOIN accounts a ON a.sales_rep_id = s.id ORDER BY a.name;
- 提供每个订单的每个区域名称,以及客户名称和订单的单价 (total_amt_usd/total)。最终表格应该包含三列:区域名称、客户名称和单价。少数几个客户的总订单数为 0,因此我除以的是 (total + 0.01) 以确保没有除以 0。
SELECT r.name region, a.name account, o.total_amt_usd/(o.total + 0.01) unit_price FROM region r JOIN sales_reps s ON s.region_id = r.id JOIN accounts a ON a.sales_rep_id = s.id JOIN orders o ON o.account_id = a.id;
- 为每个销售代表对应的区域以及相关的客户创建一个表格,这次仅针对
Midwest
区域。最终表格应该包含三列:区域名称、销售代表姓名,以及客户名称。根据客户名称按字母顺序 (A-Z) 排序。SELECT r.name region, s.name rep, a.name account FROM sales_reps s JOIN region r ON s.region_id = r.id JOIN accounts a ON a.sales_rep_id = s.id WHERE r.name = 'Midwest' ORDER BY a.name;
- 为每个销售代表对应的区域以及相关的客户创建一个表格,这次仅针对
Midwest
区域,并且销售代表的名字以S
开头。最终表格应该包含三列:区域名称、销售代表姓名,以及客户名称。根据客户名称按字母顺序 (A-Z) 排序。SELECT r.name region, s.name rep, a.name account FROM sales_reps s JOIN region r ON s.region_id = r.id JOIN accounts a ON a.sales_rep_id = s.id WHERE r.name = 'Midwest' AND s.name LIKE 'S%' ORDER BY a.name;
- 为每个销售代表对应的区域以及相关的客户创建一个表格,这次仅针对
Midwest
区域,并且销售代表的姓以K
开头。最终表格应该包含三列:区域名称、销售代表姓名,以及客户名称。根据客户名称按字母顺序 (A-Z) 排序。SELECT r.name region, s.name rep, a.name account FROM sales_reps s JOIN region r ON s.region_id = r.id JOIN accounts a ON a.sales_rep_id = s.id WHERE r.name = 'Midwest' AND s.name LIKE '% K%' ORDER BY a.name;
- 提供每个订单的每个区域的名称,以及客户名称和所支付的单价 (total_amt_usd/total)。但是,只针对标准订单数量超过
100
的情况提供结果。最终表格应该包含三列:区域名称、客户名称和单价。为了避免除以 0 个订单,这里可以在分子上加上 0.01(total_amt_usd/(total+0.01)。SELECT r.name region, a.name account, o.total_amt_usd/(o.total + 0.01) unit_price FROM region r JOIN sales_reps s ON s.region_id = r.id JOIN accounts a ON a.sales_rep_id = s.id JOIN orders o ON o.account_id = a.id WHERE o.standard_qty > 100; (下面的跟上面结果一样) SELECT r.name region, a.name account, o.total_amt_usd/(o.total+0.01) unit_price FROM orders o JOIN accounts a ON o.account_id = a.id JOIN sales_reps s ON a.sales_rep_id = s.id JOIN region r ON s.region_id = r.id WHERE o.standard_qty > 100;
- 提供每个订单的每个区域的名称,以及客户名称和所支付的单价 (total_amt_usd/total)。但是,只针对标准订单数量超过
100
且广告纸数量超过50
的情况提供结果。最终表格应该包含三列:区域名称、客户名称和单价。按照最低的单价在最之前排序。为了避免除以 0 个订单,这里可以在分子上加上 0.01(total_amt_usd/(total+0.01)。SELECT r.name region, a.name account, o.total_amt_usd/(o.total + 0.01) unit_price FROM region r JOIN sales_reps s ON s.region_id = r.id JOIN accounts a ON a.sales_rep_id = s.id JOIN orders o ON o.account_id = a.id WHERE o.standard_qty > 100 AND o.poster_qty > 50 ORDER BY unit_price;
-
提供每个订单的每个区域的名称,以及客户名称和所支付的单价 (total_amt_usd/total)。但是,只针对标准订单数量超过
100
且广告纸数量超过50
的情况提供结果。最终表格应该包含三列:区域名称、客户名称和单价。按照最高的单价在最之前排序。为了避免除以 0 个订单,这里可以在分子上加上 0.01(total_amt_usd/(total+0.01)。SELECT r.name region, a.name account, o.total_amt_usd/(o.total + 0.01) unit_price FROM region r JOIN sales_reps s ON s.region_id = r.id JOIN accounts a ON a.sales_rep_id = s.id JOIN orders o ON o.account_id = a.id WHERE o.standard_qty > 100 AND o.poster_qty > 50 ORDER BY unit_price DESC;
-
account id 为
1001
的客户使用了哪些不同的渠道。最终表格应该包含 2 列:客户名称和不同的渠道。你可以尝试使用 SELECT DISTINCT 使结果仅显示唯一的值。SELECT DISTINCT a.id, w.channel FROM accounts a RIGHT JOIN web_events w ON a.id = w.account_id WHERE a.id = '1001';
- 找出发生在
2015
年的所有订单。最终表格应该包含 4 列:occurred_at、account name、order total和 order total_amt_usd。SELECT w.occurred_at, a.name, o.total, o.total_amt_usd FROM accounts a JOIN orders o ON o.account_id = a.id JOIN web_events w ON a.id = w.account_id WHERE w.occurred_at BETWEEN '01-01-2015' AND '01-01-2016' ORDER BY w.occurred_at DESC;(下面的跟上面的一样) SELECT w.occurred_at occurred, a.name account, o.total total, o.total_amt_usd total_amt FROM orders o JOIN accounts a ON o.account_id = a.id JOIN web_events w ON a.id = w.account_id WHERE w.occurred_at BETWEEN '01-01-2015' AND '01-01-2016' ORDER BY w.occurred_at DESC;
下一项