我有一个表,VehicleModelYear,包含列id,year,make和model.
以下两个查询按预期工作:
SELECT DISTINCT make,model
FROM VehicleModelYear
SELECT COUNT(DISTINCT make)
FROM VehicleModelYear
但是,此查询不起作用
SELECT COUNT(DISTINCT make,model)
FROM VehicleModelYear
很明显的答案是第一个查询返回的结果的数量,但只是想知道这个语法有什么问题或为什么它不起作用.
sql Server中的COUNT()接受以下语法
COUNT(*)
COUNT(colName)
COUNT(DISTINCT colName)
您可以有一个子查询返回您可以计数的唯一的一组make和model.
SELECT COUNT(*)
FROM
(
SELECT DISTINCT make,model
FROM VehicleModelYear
) a
最后的“a”不是打字错误.这是一个别名,sql不会发生错误ERROR 1248(42000):每个派生表都必须有自己的别名.