sql - 将产品线 UpTime/DownTime 分解为季度总计 SQL
问题描述
我有一张桌子,我们叫tableA。表 A 具有以下列:
TableA
| Date | Line | UpTime | DownTime |
对于每个日期,都有一条产品线具有相应的正常运行时间和停机时间。我需要将这些数据分解为每种产品的总数,然后对每个季度进行分析。下表将是最终表的示例。
| Line | UpTime | DownTime | TotalTime | UpTime% |
| Prod. A| 5000 | 3000 | 8000 | 62.5% |
| Q1 | 2500 | 1500 | 4000 | 62.5% |
| Q2 | 2500 | 1500 | 4000 | 62.5% |
| Prod B | 5700 | 1200 | 6900 | 82.6% |
| Q1 | 3000 | 400 | 3400 | 88.2% |
| Q2 | 2700 | 800 | 3500 | 77.1% |
etc. etc. for each product
如上所示,当您看到一条带有“Prod A”或“Prod B”的行时,Uptime、DownTime 和 TotalTime 都是第 1 季度和第 2 季度的总和。在每条“Prod X”行下方,时间被分成四等份。我有一个查询要返回每个产品的总数,但不知道如何进一步将其细分为四等分。如果第 3 季和第 4 季也出现,这也不是一件坏事。到目前为止,这是我的代码:
SELECT
Line,
sum(UpTime) as 'UpTime',
sum(Downtime) as 'DownTime',
sum(uptime + downtime) as 'TotalTime'
FROM TableA
group by Line
order by line
此代码返回所有产品总数。我需要添加什么来进一步将其分解为四等分?
解决方案
你试过用 ROLLUP 吗?
SELECT Line,
DATEPART(QUARTER, [Date]),
sum(UpTime) as 'UpTime',
sum(Downtime) as 'DownTime',
sum(uptime + downtime) as 'TotalTime'
FROM TableA
GROUP BY Line,
DATEPART(QUARTER, [Date]) WITH ROLLUP
ORDER BY Line
推荐阅读
- php - 当我从 laravel 本地上传时,数字海洋 403 被禁止
- javascript - 如何添加用 javascript
- arrays - AsStreams FireDAC 从 MemoryStream 获得 nil 值
- clang - 在 VS 2019 中链接 dpdk 应用程序时出错 - 在哪里可以找到丢失的 per_lcore__lcore_id 符号
- spring-boot - 从数据库中选择查询记录是否需要使用实体注释
- azure - 如何使用 PowerShell 将 Azure 中的 blob 容器条目导出到 SQL Server?
- java - 如何通过 SDK 获取 Kafka 消费者的 ip 地址?
- python - 如何在 Pandas 的查询字符串中引用未命名的列?
- google-sheets - 从 HTM 网格中的 Google 工作表返回记录
- r - 如何在 ggplot ( R studio) 中选择饼图的顺序