簡體   English   中英

SQL 根據條件和組強制列值

[英]SQL Force a column value based on a condition and group

我在 SQL 表上有三列:

Product ---- Flag 1 ---- Flag 2
Bike           1           0
Bike           1           1
Car            0           0
Car            0           0

我想創建另一個列來查看標志 2 和產品; 每個產品,如果標志 2 有一個“1”,給我這些行上的所有 1,如果它有一個“0”,給我這些行上的所有零。 例子:

 Product ---- Flag 1 ---- Flag 2 ---- Flag 3
 Bike           1           0           1
 Bike           1           1           1
 Car            0           0           0
 Car            0           0           0

我基本上試圖通過自己創建標志(標志 2)來驗證標志 1。 但是由於我正在拖動其他幾列並且在滿足某些條件時標志 2 放置“1”,當它們不滿足時,它顯然放置一個零,而標志 1 正在從另一個表中拉出(導致“1”一旦條件滿足一次,在所有行中)。 但是之后,當我驗證“不可以”(當標志 1 與標志 2 不同時)時,我基本上會將這張假桌子上的第二行作為 NOK,這將是一個錯誤,因為我為“自行車”找到了正確的答案" 產品(第一行)。

如果這聽起來令人困惑,我很抱歉,只是想提供一些背景信息,而不僅僅是尋求幫助。 謝謝你們。

使用窗口函數:

select t.*,
       max(flag2) over (partition by product) as flag3
from t;

暫無
暫無

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

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