Sql server SQL Server:按一列对所有数据进行分组

Sql server SQL Server:按一列对所有数据进行分组,sql-server,stored-procedures,Sql Server,Stored Procedures,我需要一些关于编写SQL Server存储过程的帮助。列车上的所有数据组 预期结果: 我的查询有什么问题吗?GROUP BY将表粉碎在一起,因此,如果将未分组的列合并在一起,则会导致数据出现问题 select Train_B_N, Duration,Date,Trainer,Train_code,Training_Program from Train_M group by Train_B_N 按照ANSI标准,GROUP By必须包括SELECT

我需要一些关于编写SQL Server存储过程的帮助。列车上的所有数据组

预期结果:

我的查询有什么问题吗?

GROUP BY将表粉碎在一起,因此,如果将未分组的列合并在一起,则会导致数据出现问题

select Train_B_N, Duration,Date,Trainer,Train_code,Training_Program
            from Train_M
            group by Train_B_N
按照ANSI标准,GROUP By必须包括SELECT语句中不在聚合函数中的所有列。没有例外

WITH CTE AS (SELECT TRAIN_B_N, MAX(DATE) AS Last_Date
FROM TRAIN_M
GROUP BY TRAIN_B_N)

SELECT A.Train_B_N, Duration, Date,Trainer,Train_code,Training_Program
FROM TRAIN_M AS A
INNER JOIN CTE ON CTE.Train_B_N = A.Train_B_N
              AND CTE.Last_Date = A.Date
此示例将返回该ID使用的最后一个培训计划trainer和train_代码。 这是通过MAXDATE聚合函数实现的,该函数保留了表中最大的最新日期。由于GROUPBY将行分解为不同的分组,因此联接只返回表结果的一个子集

请记住,SQL将返回表\u行X匹配的\u行,如果匹配的\u行基数大于1,则将获得额外的行

抬头看。我建议您首先阅读语法示例之外的所有内容,并了解该子句的目的

另外,下次,试着像这样用谷歌搜索你的问题:“GROUPBY,SQL”,或者插入IDE SSM给出的错误代码或其他。你需要明白为什么事情会发生……所以我来帮助你,而不是做你的谷歌搜索引擎

希望您发现这开始了您学习SQL的兴趣:D

GROUP BY将表粉碎在一起,因此,如果列未分组,则会导致数据出现问题

select Train_B_N, Duration,Date,Trainer,Train_code,Training_Program
            from Train_M
            group by Train_B_N
按照ANSI标准,GROUP By必须包括SELECT语句中不在聚合函数中的所有列。没有例外

WITH CTE AS (SELECT TRAIN_B_N, MAX(DATE) AS Last_Date
FROM TRAIN_M
GROUP BY TRAIN_B_N)

SELECT A.Train_B_N, Duration, Date,Trainer,Train_code,Training_Program
FROM TRAIN_M AS A
INNER JOIN CTE ON CTE.Train_B_N = A.Train_B_N
              AND CTE.Last_Date = A.Date
此示例将返回该ID使用的最后一个培训计划trainer和train_代码。 这是通过MAXDATE聚合函数实现的,该函数保留了表中最大的最新日期。由于GROUPBY将行分解为不同的分组,因此联接只返回表结果的一个子集

请记住,SQL将返回表\u行X匹配的\u行,如果匹配的\u行基数大于1,则将获得额外的行

抬头看。我建议您首先阅读语法示例之外的所有内容,并了解该子句的目的

另外,下次,试着像这样用谷歌搜索你的问题:“GROUPBY,SQL”,或者插入IDE SSM给出的错误代码或其他。你需要明白为什么事情会发生……所以我来帮助你,而不是做你的谷歌搜索引擎


希望您发现这开始了您学习SQL的兴趣:D

您已经做了什么,需要什么样的帮助?您希望在每组中保留哪一行?您可能不了解group BY做了什么。您已经做了什么,需要什么样的帮助?您希望在每组中保留哪一行?您可能不了解group BY做了什么。