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

执行SELECTModelType.ModelType,COUNT(*)FROMModelType,MobilesWHEREModelType.ModelTypeID=M... 执行
SELECT ModelType.ModelType,COUNT(*)
FROM ModelType,Mobiles
WHERE ModelType.ModelTypeID=Mobiles.ModelTypeID
GROUP BY ModelType
后结果为
摩托罗拉(Motorola) 7
诺基亚(Nokia) 5
三星(Samsung) 6
松下(Panasonic) 5
索尼爱立信(SonyEricsson) 5
其中缺少一行在ModelType表中有数据而在Mobiles表中没有数据的记录,
想请问一下如何把该行数据的统计数字按0输出而不是直接不显示该行
展开
 我来答
大宝妈谈教育
高粉答主

2020-04-22 · 关注我不会让你失望
知道小有建树答主
回答量:3306
采纳率:100%
帮助的人:53.9万
展开全部

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。

酒瓶里的蚊子
推荐于2017-11-22 · TA获得超过622个赞
知道小有建树答主
回答量:629
采纳率:0%
帮助的人:777万
展开全部
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,自己在显示的界面中判断处理一下就好了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zqc_0101
2009-12-18 · TA获得超过4083个赞
知道大有可为答主
回答量:751
采纳率:100%
帮助的人:1001万
展开全部
试一下外联接查询:

SELECT ModelType.ModelType,COUNT(*)
FROM ModelType
LEFT OUTER JOIN Mobiles
ON ModelType.ModelTypeID=Mobiles.ModelTypeID
GROUP BY ModelType
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式