Sql server SQL Server:按一列对所有数据进行分组
我需要一些关于编写SQL Server存储过程的帮助。列车上的所有数据组 预期结果: 我的查询有什么问题吗?GROUP BY将表粉碎在一起,因此,如果将未分组的列合并在一起,则会导致数据出现问题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
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的兴趣:DGROUP 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做了什么。