gpt4 book ai didi

sql - 没有join怎么写SQL查询?

转载 作者:行者123 更新时间:2023-12-04 01:09:51 33 4
gpt4 key购买 nike

最近在面试的时候有人问我一个问题:如果我有一个像下面这样的表:

enter image description here

要求是:每天有多少订单和多少发货(基于日期列)——输出需要是这样的:

enter image description here

我写了下面的代码,但是面试官让我写一个没有JOIN和UNION的SQL查询,实现相同的输出。

SELECT 
COALESCE(a.order_date, b.ship_date), orders, shipments
FROM
(SELECT
order_date, COUNT(1) AS orders
FROM
table
GROUP BY 1) a
FULL JOIN
(SELECT
ship_date, COUNT(1) AS shipments
FROM table) b ON a.order_date = b.ship_date

这可能吗?各位大大可以指点一下吗?

最佳答案

您可以使用 UNIONGROUP BY 进行条件聚合,如下所示:

SELECT DATE_, 
COUNT(CASE WHEN FLAG = 'ORDER' THEN 1 END) AS ORDERS,
COUNT(CASE WHEN FLAG = 'SHIP' THEN 1 END) AS SHIPMENTS
FROM (SELECT ORDER_DATE AS DATE_, 'ORDER' AS FLAG FROM YOUR_TABLE
UNION ALL
SELECT SHIP_DATE AS DATE_, 'SHIP' AS FLAG FROM YOUR_TABLE) T

关于sql - 没有join怎么写SQL查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65214347/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com