我有两个查询。 第一个是:
dyplr
第一个查询的输出是
第二个查询是:
library(dplyr)
library(tidyr)
# take your data frame
df %>%
# gather into long format
gather(Q_column, value, -quarter, -endcolumn) %>%
# extract number from the column name
extract(Q_column, "column", "Q(\\d+)") %>%
# group by the quarter and end column for calculations
group_by(quarter, endcolumn) %>%
# summarize up to the desired column
summarize(t0 = sum(value[column <= endcolumn - 2]))
第二个查询的输出是:
实际上我正在绘制图形所以我需要将这两个查询合并为一个。我得到的解决方案是:
SELECT hardware, SUM(Quantity) FROM request_1v2 where date between "2016-03-12" AND "2016-03-14" group by hardware
解决方案查询的输出:
这是错的!
我需要的实际输出是: -
我不知道该怎么做。谁能帮我。? 有人建议我把你的查询写成: -
SELECT hardware, SUM(Quantity) FROM request_1v2 where date between "2016-03-12" AND "2016-03-12" group by hardware
但它会出错&#34; 模糊列名:硬件&#34;
请帮助我并将查询写为您的答案谢谢。
如果您需要表格结构,请执行以下操作:
答案 0 :(得分:1)
只需使用CASE,事情是你的日期重叠,你可能想要更改它们。你的第三个查询创建一个笛卡儿JOIN,因为你没有JOIN条件。
SELECT hardware,
SUM(CASE WHEN date between "2016-03-12" AND "2016-03-14" THEN Quantity ELSE 0 END),
SUM(CASE WHEN date between "2016-03-12" AND "2016-03-12" THEN Quantity ELSE 0 END)
FROM request_1v2
group by hardware