【问题标题】:SQL Server - Generate a column value which satisfy same condition in a daySQL Server - 在一天内生成满足相同条件的列值
【发布时间】:2020-11-17 16:35:06
【问题描述】:

我有一个交易表 (Tran_Table),其中包含帐号、交易日期、交易金额。我想生成一个包含“是”或“否”信息的列,以防同一客户在同一天重复相同金额的交易。表格和生成值示例如下所示。

AccountNumber   Tran_Date   Amount  Have_SameTran
85694           01/01/2020  1000    Yes
85694           01/01/2020  300     no
85694           01/02/2020  300     no
24121           01/01/2020  500     yes
24121           01/02/2020  750     no
85694           01/03/2020  1000    no
24121           01/01/2020  500     yes

我该怎么做?

【问题讨论】:

  • 你试过什么?你在哪里卡住了?
  • 我不知道该怎么做,除了乱七八糟的东西,我什么都做不了。

标签: sql sql-server count case window-functions


【解决方案1】:

您可以使用窗口函数和条件表达式:

select 
    t.*,
    case 
        when count(*) over(partition by tran_date, account_number, amount) > 1 
        then 'yes' 
        else 'no' 
    end as has_same_tran
from mytable t

【讨论】:

    猜你喜欢
    • 2023-02-11
    • 2019-02-03
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    相关资源
    最近更新 更多