簡體   English   中英

如何根據另一列中的 IF 參數從 SQL 中的一列創建兩列

[英]How to Create Two Columns from One Column in SQL Based on a IF argument in Another Column

我有一個有 3 列的表。 價值、條件和日期。 我想從列值中選擇兩列。 一個是由 t.condition 1 分組的 t.value 的平均值,另一個是由 t.condition 2 分組的 t.value 的平均值。然后我想按天和條件對它們進行分組。

桌子

結果應如下表所示。

預期結果

我嘗試過 case when、if 和 CTE。 然而,他們都失敗了。 if 語句用於滿足一個條件,但看到該條件是二進制的,我嘗試的 if 函數不起作用。 我考慮過創建兩個表,然后在當天加入。 我認為那會起作用。 有沒有更簡單的方法來做到這一點?

謝謝!

您可以使用條件聚合:

select day,
       max(case when condition = 1 then value end) as value_1,
       max(case when condition = 2 then value end) as value_2
from t
group by day;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM