我正在查看以下物化视图
CREATE MATERIALIZED VIEW ShipStats AS
SELECT country, AVG(displacement), COUNT(*)
FROM classes, ships
WHERE classes.class = ships.name
GROUP BY country;
并试图弄清楚SELECT []部分正在做什么。
我理解选择国家。和AVG(位移)是位移列的平均值。但是COUNT(*)在做什么。另外,AVG排水量与单船的统计数据有什么关系?
关系:
Classes(class, type, country, numGuns, bore, displacement)
Ships(name, class, launched)
答案 0 :(得分:3)
count(*)
只返回每组的行数。
由于group by
语句,同一国家/地区的所有行都合并为一行。 count(*)
会返回进入一个此类组的行数,而AVG(displacement)
是该组中所有行的displacement
的平均值。
因此,排水量不适用于单艘船舶,而是适用于一组船舶。
如果只有一行进入这样一个组,count
将返回1而average
将返回该行的位移值。
答案 1 :(得分:1)
选择国家,在该国注册的船舶的平均排水量,以及在该国家注册的船舶数量(至少假设列名与实际情况一致)。
答案 2 :(得分:1)
Count(*)表示每个国家/地区的行数。
答案 3 :(得分:0)
它正在计算组中的项目数。我相信它还包括NULL值和重复项。