欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

sql中查询同一列所有值出现的次数

程序员文章站 2022-03-09 10:35:42
...

建表country_year_population_tab:

-- ----------------------------
-- Table structure for country_year_population_tab
-- ----------------------------
DROP TABLE IF EXISTS `country_year_population_tab`;
CREATE TABLE `country_year_population_tab` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '表主键',
  `country` varchar(255) DEFAULT NULL COMMENT '国家',
  `popution` varchar(255) DEFAULT NULL COMMENT '人口',
  `year` varchar(255) DEFAULT NULL COMMENT '年份',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of country_year_population_tab
-- ----------------------------
INSERT INTO `country_year_population_tab` VALUES ('1', '中国', '100', '2000');
INSERT INTO `country_year_population_tab` VALUES ('2', '美国', '120', '2000');
INSERT INTO `country_year_population_tab` VALUES ('3', '德国', '50', '2001');
INSERT INTO `country_year_population_tab` VALUES ('4', '日本', '30', '2013');
INSERT INTO `country_year_population_tab` VALUES ('5', '中国', '200', '2015');
INSERT INTO `country_year_population_tab` VALUES ('6', '韩国', '20', '2011');
INSERT INTO `country_year_population_tab` VALUES ('7', '英国', '60', '2012');
INSERT INTO `country_year_population_tab` VALUES ('8', '南非', '130', '2017');
INSERT INTO `country_year_population_tab` VALUES ('9', '中国', '500', '2018');
INSERT INTO `country_year_population_tab` VALUES ('11', '美国', '200', '2018');

sql中查询同一列所有值出现的次数

需要查询country中各个国家出现的次数

SQL语句:

SELECT
	country AS 国家,
	COUNT(*) AS 次数
FROM
	country_year_population_tab
GROUP BY
	country

结果:

sql中查询同一列所有值出现的次数

知识点:

count(*)统计的是结果集的总条数,count(字段名)统计的是该字段值不为null的总条数

Group By:从字面意义上理解就是根据“By”指定的规则对数据进行分组,所谓的分组就是将一个“数据集”划分成若干个“小区域”,然后针对若干个“小区域”进行数据处理

总结:count(*)先拿到一个计算各个字段值总条数的结果集,然后group by根据某个字段来分组,比如上面的例子,根据国家来分组,那么就是计算各个国家出现的次数。

相关标签: sql