Mysql 理解sql中的简单计数逻辑
我有一个非常基本的问题,我自己无法回答,但不应该占用你太多时间 下面的查询工作正常,它列出了所有的Mysql 理解sql中的简单计数逻辑,mysql,sql,syntax,count,Mysql,Sql,Syntax,Count,我有一个非常基本的问题,我自己无法回答,但不应该占用你太多时间 下面的查询工作正常,它列出了所有的展览\类别\ id,并统计分配给每个类别的对象总数 我的问题是:它为什么这样做?我不明白这个问题。它说的是count(*)-为什么不给我不同展览类别id的总数(79),而是计算每个类别分配了多少个对象 以下是有问题的查询,以及实际输出的屏幕截图: SELECT eb.exhibition_category_id, count(*) AS total FROM exhibition_brand eb
展览\类别\ id
,并统计分配给每个类别的对象总数
我的问题是:它为什么这样做?我不明白这个问题。它说的是count(*)
-为什么不给我不同展览类别id的总数(79),而是计算每个类别分配了多少个对象
以下是有问题的查询,以及实际输出的屏幕截图:
SELECT eb.exhibition_category_id, count(*) AS total
FROM exhibition_brand eb
GROUP BY eb.exhibition_category_id
希望我的要求是可以理解的,希望根据反馈改进我的帖子。
干杯您的查询是一个基本聚合查询:
SELECT eb.exhibition_category_id, count(*) AS total
FROM exhibition_brand eb
GROUP BY eb.exhibition_category_id;
groupby
指定结果集将为eb.exposition\u category\u id
的每个值包含一行。结果集由两列组成,一列是定义行的值。另一个是每个组中的行数计数。这就是COUNT(*)
所做的
如果您想要不同的eb.exposition\u category\u id的总计数
,那么您需要一行和count(DISTINCT)
:
groupby
函数将COUNT()按eb.exhibition\u category\u id
进行分组,因此查询按eb.exhibition\u category\u id
对记录进行分组,然后对相应的记录进行计数。谢谢戈登,这确实帮助了我的理解
select count(distinct eb.exhibition_category_id)
from exhibition_brand eb;