【问题标题】:Needing Help Separating Data into columns需要帮助将数据分成列
【发布时间】:2021-03-19 06:03:31
【问题描述】:

我目前在工作中使用 SQL 来查询数据库以显示某些信息。我将每个项目都作为单独的实体拉出。每当我运行查询时,我的结果只显示在一列下。有没有办法根据别名将这些数据分成不同的列?

SELECT
    count(o.orderid) AS Current_Daily
FROM
    orders o
WHERE
    o.ship_dt BETWEEN '2020-11-09 00:00:00' AND '2020-11-15 23:59:59'
    AND o.orderstatus = 2
UNION
#UNION ALL

SELECT
    count(o.orderid)  AS Previous_Daily
FROM
    orders o
WHERE
    o.ship_dt BETWEEN '2019-11-09 00:00:00' AND '2019-11-15 23:59:59'
    AND o.orderstatus = 2
UNION
#UNION ALL

SELECT
    count(o.orderid) AS Current_Monthly
FROM
    orders o
WHERE
    o.ship_dt BETWEEN '2020-11-01 00:00:00' AND '2020-11-15 23:59:59'
    AND o.orderstatus = 2
UNION
#UNION ALL

SELECT
    count(o.orderid) AS Previous_Monthly
FROM
    orders o
WHERE
    o.ship_dt BETWEEN '2019-11-01 00:00:00' AND '2019-11-15 23:59:59'
    AND o.orderstatus = 2

;

任何帮助将不胜感激。

【问题讨论】:

  • 用您正在使用的数据库标记您的问题。样本数据和期望的结果会有所帮助。不清楚为什么您重复两次相同的查询,除了列别名。

标签: sql count pivot aggregate-functions


【解决方案1】:

使用条件聚合,如:

select
    sum(case when ship_dt >= '2020-11-09' and ship_dt < '2020-11-15' then 1 else 0 end) as current_daily,
    sum(case when ship_dt >= '2020-11-01' and ship_dt < '2020-11-15' then 1 else 0 end) as current_monthly,
    ... -- more conditional "sum()"s if needed
from orders o
where orderstatus = 2

【讨论】:

    【解决方案2】:

    您可能只需要条件聚合。像这样的:

    SELECT SUM(CASE WHEN o.ship_dt >= '2020-11-09' AND o.ship_dt < '2020-11-16' THEN 1 ELSE 0 END) AS Current_Daily,
           SUM(CASE WHEN o.ship_dt >= '2020-11-01' AND o.ship_dt < '2020-11-16' THEN 1 ELSE 0 END) AS Current_Monthly,
    FROM orders o
    WHERE o.orderstatus = 2;
    

    您可以使用类似的逻辑添加其他列。

    【讨论】:

    • 这似乎不起作用,我需要将这些数据分开,我不确定我是否澄清了这一点。每个输出都必须独立存在。我只是想创建一个更清晰的读数,准确说明正在显示的内容
    • count(o.orderid) 462 573 841 1321 这是我从这个查询中得到的数据输出。我只是想将这些结果中的每一个分成单独标记的列。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-04
    • 2021-01-16
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多