【问题标题】:SQL field default "count(another_field) +1"SQL 字段默认 "count(another_field) +1"
【发布时间】:2018-11-20 22:34:21
【问题描述】:

我需要创建一个字段 COUNT,其默认值是到目前为止自动生成的 NAME 在该表中出现的次数,如下面的示例所示。由于我将该字段添加到现有表中,因此我还需要填充现有行。请问这个怎么做最好?

ID  NAME    COUNT
1   peter   1
2   jane    1
3   peter   2
4   peter   3
5   frank   1
6   jane    2
7   peter   4

【问题讨论】:

    标签: sql count create-table


    【解决方案1】:

    您可以在查询表时使用 ANSI 标准的行号函数执行此操作:

    select id, name, row_number() over (partition by name order by id) as seqnum
    from t;
    

    【讨论】:

    • 谢谢戈登。我希望能够根据该列查询表,例如其中 COUNT=1,所以我宁愿将它作为一个字段
    • @lidram 。 . .您无需添加其他字段即可获取 name 的最小 id。
    • 对于任何使用它的人,我尝试使用 WHERE 子句,但这是不允许的“窗口函数只能出现在 SELECT 或 ORDER BY 子句中”。所以我将数据复制到一个新表并从中选择。
    • @lidram 。 . .您可能只使用子查询。
    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 2014-05-21
    • 2022-01-02
    相关资源
    最近更新 更多