SQL中如何显示COUNT结果为0的行

2024-11-29 03:53:59
推荐回答(3个)
回答1:

SELECTModelType.ModelType,t1.count1FROM

ModelType

LEFTOUTERJOIN

SELECTModelTypeID,COUNT(*)ascount1

FROMMobiles

GROUPBYModelTypeID

)t1

ONt1.ModelTypeID=ModelType.ModelTypeID

注意:对于包含count1 0的行,SELECT的数据可能是NULL,但是可以在显示中处理它。

扩展资料:

函数的作用是:返回与指定条件匹配的行数。

语法

(1).SQLCOUNT(column_name)语法

COUNT(column_name)函数返回指定列的值的个数(NULL不计算):

从table_nameSQL中选择COUNT(column_name)

(2).TheCOUNT(*)grammar

COUNT(*)函数返回表中的记录数:

从table_nameSQL中选择COUNT(*)

(3).count(不同的column_name)语法

COUNT(DISTINCTcolumn_name)函数返回指定列的不同值的数目:

从table_name中选择COUNT(不同的column_name)

注意:COUNT(DISTINCT)适用于ORACLE和MicrosoftSQLServer,但不适用于MicrosoftAccess。

回答2:

SELECT ModelType.ModelType,t1.count1 FROM
ModelType
LEFT OUTER JOIN
(
SELECT ModelTypeID ,COUNT(*) as count1
FROM Mobiles
GROUP BY ModelTypeID
) t1
ON t1.ModelTypeID = ModelType.ModelTypeID

我这里没有你的数据库,也不知道你的数据库类型,没法测试。不过大体就是这意思,无论count1是否大于零,均会包括所有的ModelType.ModelType。
注意,这样SELECT的数据,对于count1为0的行,其值可能为NULL,自己在显示的界面中判断处理一下就好了。

回答3:

试一下外联接查询:

SELECT ModelType.ModelType,COUNT(*)
FROM ModelType
LEFT OUTER JOIN Mobiles
ON ModelType.ModelTypeID=Mobiles.ModelTypeID
GROUP BY ModelType