需求:查看合同信息表里面有多少合同编号是重复的
SELECT 合同编号, COUNT(*)
FROM 合同信息表
GROUP BY 合同编号
HAVING COUNT(*) > 1;
结果:
数量太多
需求:列数太多,怎样看具体有多少个
SELECT COUNT(*) AS total
FROM (
SELECT 合同编号, COUNT(*) AS duplicate_count
FROM 合同信息表
GROUP BY 合同编号
HAVING COUNT(*) > 1
) AS duplicate_contracts;
结果:
总结:
在 SQL 中,通常情况下,内部查询(也称为子查询)的结果集必须要有一个别名,这样外部查询才能引用它。这是因为外部查询需要知道如何引用内部查询返回的结果集。
在上面的例子中,内部查询是一个带有 COUNT(*) AS duplicate_count
别名的查询。这个别名是必需的,因为外部查询需要引用这个列来执行 COUNT(*)
操作。如果没有为内部查询提供别名,外部查询将无法识别内部查询返回的列,并且会产生错误。
另外,如果您不想为内部查询提供别名,您也可以在外部查询中直接使用内部查询的结果,而无需引用它的列。例如:
SELECT COUNT(*) AS total
FROM (
SELECT 合同编号
FROM 合同信息表
GROUP BY 合同编号
HAVING COUNT(*) > 1
) AS duplicate_contracts;
在这个修改后的查询中,内部查询仅返回合同编号,而外部查询只需要知道内部查询返回的结果集,而不需要引用它的列。因此,您可以不给内部查询提供别名。
总的来说,提供别名可以让查询更加清晰易懂,但在某些情况下也可以不提供。
标签:COUNT,20240410sql,别名,查询,学习,合同,编号,SELECT From: https://www.cnblogs.com/lm02/p/18125420