gpt4 book ai didi

sql - 具有GROUP BY ID的T-SQL SELECT

转载 作者:行者123 更新时间:2023-12-04 13:23:33 26 4
gpt4 key购买 nike

我的 table 上有“


  • ID
  • 名称
  • 年龄

  • 和带有' Notes '的表:


  • ID
  • 文字
  • FK_作者

  • 我想从人员表中选择所有作者的备忘计数及其姓名和年龄,但是我想按PERSON ID(而不是姓名)将其分组。在许多情况下,人们具有相同的姓名,但ID显然总是不同的。

    示例(输入)

    人物:
    ╔════╦═══════╦═════╗
    ║ ID ║ NAME ║ AGE ║
    ╠════╬═══════╬═════╣
    ║ 1 ║ John ║ 12 ║
    ║ 2 ║ Annie ║ 29 ║
    ║ 3 ║ John ║ 44 ║
    ╚════╩═══════╩═════╝

    注意:
    ╔════╦═══════╦═══════════╗
    ║ ID ║ TEXT ║ FK_AUTHOR ║
    ╠════╬═══════╬═══════════╣
    ║ 1 ║ 'aaa' ║ 1 ║
    ║ 2 ║ 'aaa' ║ 1 ║
    ║ 3 ║ 'aaa' ║ 2 ║
    ║ 4 ║ 'aaa' ║ 2 ║
    ║ 5 ║ 'aaa' ║ 3 ║
    ╚════╩═══════╩═══════════╝

    预期结果:
    ╔═══════╦═════╦════════════╗
    ║ NAME ║ AGE ║ TOTALCOUNT ║
    ╠═══════╬═════╬════════════╣
    ║ John ║ 12 ║ 2 ║
    ║ Annie ║ 29 ║ 2 ║
    ║ John ║ 44 ║ 1 ║
    ╚═══════╩═════╩════════════╝

    当我选择数据时,如果要选择此列,也必须按名称分组,因为如果不这样做,则会出错。

    最佳答案

    由于要从表People中获取所有记录,因此需要通过使用Notes将其与LEFT JOIN关联,以便任何在Notes上没有任何记录的用户都将被包括在列表中,且totalCount的v值为零。

    SELECT  a.ID, a.Name, a.Age,
    COUNT(b.FK_Author) totalCount
    FROM People a
    LEFT JOIN Notes b
    ON a.ID = b.FK_Author
    GROUP BY a.ID, a.Name, a.Age
  • SQLFiddle Demo

  • 要进一步获得有关联接的知识,请访问以下链接:
  • Visual Representation of SQL Joins

  • 输出
    ╔════╦═══════╦═════╦════════════╗
    ║ ID ║ NAME ║ AGE ║ TOTALCOUNT ║
    ╠════╬═══════╬═════╬════════════╣
    ║ 1 ║ John ║ 12 ║ 2 ║
    ║ 2 ║ Annie ║ 29 ║ 2 ║
    ║ 3 ║ John ║ 44 ║ 1 ║
    ╚════╩═══════╩═════╩════════════╝

    关于sql - 具有GROUP BY ID的T-SQL SELECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15785877/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com