mysql查询统计数量

CREATETABLE`pl_org_region`(`region_id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'区域自增ID',`pa... CREATE TABLE `pl_org_region` (
`region_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '区域自增ID',
`parent_id` int(11) NOT NULL DEFAULT '0' COMMENT '父区域ID 对应自身数据表 0表示顶级区域',
`region_sn` varchar(10) NOT NULL COMMENT '区域编号',
`region_name` varchar(20) NOT NULL COMMENT '区域名称',
`comments` varchar(255) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`region_id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='区域表'

CREATE TABLE `pl_store` (
`store_id` int(11) NOT NULL COMMENT '门店自增ID',
`store_sn` varchar(10) NOT NULL COMMENT '门店编号',
`region_id` int(11) NOT NULL COMMENT '区域ID 对应org_region表',
`region_name` varchar(15) NOT NULL COMMENT '区域名称 对应org_region表',
PRIMARY KEY (`store_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='门店表'

如建表语句的2张表。
如何统计当前区域下的门店数量?为0 也需要显示区域信息处理,谢谢!
SELECT p.region_id,COUNT(p.region_id) AS cnt,r.* FROM pl_org_region r, pl_store p WHERE r.region_id=p.region_id GROUP BY p.region_id;
这样查询只显示出来统计结果不为0 的情况。。
展开
 我来答
badkano
2017-07-19 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885371
团长

向TA提问 私信TA
展开全部

一共加了三条数据

insert into pl_org_region(parent_id,region_sn,region_name,comments) values (0,'001','北京大区','无');
insert into pl_org_region(parent_id,region_sn,region_name,comments) values (0,'002','西南大区','无');

insert into pl_store (store_sn,region_id,region_name) values ('P001',6,'北京大区');

查询语句改成:

SELECT
p.region_id,
COUNT(p.region_id) AS cnt,
r.*
FROM
pl_org_region r
LEFT JOIN pl_store p ON r.region_id = p.region_id
GROUP BY
p.region_id;

查询结果:

追问

INSERT INTO pl_org_region(parent_id,region_sn,region_name,comments) VALUES (对应的北京大区ID,'003','北京大区子区域','无');




子区域的可否也分别查询出来呢?
在子区域下 加一个pl_store  记录    统计子区域的数量 和 主区域的数量.

数位汇聚
2023-08-28 广告
常见的查询城市人口数据途径有以下几个:1. 国家统计网站:中国各级单位及公众了解全国及各地区经济社会发展和人口变动情况的重要渠道之一。其网站可以查询全国及各地各级行政区域的人口数据,包括城市总人口、年龄结构、性别比例等。2. 地方统计网站:... 点击进入详情页
本回答由数位汇聚提供
爱可生云数据库
2020-12-23 · MySQL开源数据库领先者
爱可生云数据库
爱可生,金融级开源数据库和数据云服务整体解决方案提供商;优秀的开源数据库技术,企业级数据处理技术整体解决方案提供商;私有云数据库云服务市场整体解决方案提供商。
向TA提问
展开全部
表统计信息是数据库基于成本的优化器最重要的参考信息;统计信息不准确,优化器可能给出不够优化的执行计划或者是错误的执行计划。对统计信息的计算分为非持久化统计信息(实时计算)与持久化统计信息。
非持久化统计信息
统计信息没有保存在磁盘上,而是频繁的实时计算统计信息;
每次对表的访问都会重新计算其统计信息;
假设针对一张大表的频繁查询,那么每次都要重新计算统计信息,很耗费资源。

持久化统计信息
把一张表在某一时刻的统计信息值保存在磁盘上;
避免每次查询时重新计算;
如果表更新不是很频繁,或者没有达到 MySQL 必须重新计算统计信息的临界值,可直接从磁盘上获取;
即使 MySQL 服务重启,也可以快速的获取统计信息值;
统计信息的持久化可以针对全局设置也可以针对单表设置。
接下来,详细说 MySQL 统计信息如何计算,何时计算,效果评估等问题。在 MySQL Server 层来控制是否自动计算统计信息的分布,并且来决策是持久化还是非持久化。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式