[英]ORACLE - How to count the total of two queries(with different WHERE clauses) from same table?
[英]How to combine two queries from same DB with different where clauses?
SELECT
DATE_PART(week, pickup_date) AS Week,
CAST(pickup_date AS date),
Sum(pick_up) AS pickup,
location_id
FROM
really_large.db
WHERE
location_id IN ('Location_1', 'Location_2', 'Location_3')
AND DATE_PART(week, event_pickup_date) IS NOT NULL
AND pick_up = 1
AND in_transit = 0
AND scan_event = 0
AND delivery = 0
AND return_datetime_min IS NULL
GROUP BY
Date_part(week, pickup_date), CAST(pickup_date AS date), location_id
ORDER BY
Date_part(week, pickup_date) DESC, CAST(pickup_date AS date) DESC, location_id ASC
UNION
SELECT
DATE_PART(week, pickup_date) AS Week,
CAST(pickup_date AS date),
SUM(in_transit) AS In_Transit,
FROM
really_large.db
WHERE
location_id IN ('Location_1', 'Location_2', 'Location_3')
AND DATE_PART(week, event_pickup_date) IS NOT NULL
AND pick_up = 1
AND in_transit = 1
AND scan_event = 0
AND delivery = 0
AND return_datetime_min IS NULL
GROUP BY
Date_part(week, pickup_date), CAST(pickup_date AS date), location_id
ORDER BY
Date_part(week, pickup_date) DESC, CAST(pickup_date AS date) DESC, location_id ASC;
Union 導致語法錯誤。
理想情況下,這將顯示
星期 | 日期 | 總和(拾音) | 總和(in_transit) | 位置 ID |
---|---|---|---|---|
28 | 7/18/21 | 72 | 88 | 位置_1 |
28 | 7/18/21 | 75 | 68 | 位置_2 |
28 | 7/18/21 | 96 | 72 | 位置_3 |
27 | 7/14/21 | 76 | 92 | 位置_1 |
27 | 7/14/21 | 71 | 72 | 位置_2 |
27 | 7/14/21 | 69 | 81 | 位置_3 |
兩個查詢都需要返回相同數量的列和數據類型才能進行聯合。 您的第二個查詢缺少 location_id 列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.