distinct 去重复,group by 数据分组,还是说拿起就用篇--2(嗯算是吧。)

 query($sql);
	var_dump($result);
		//	distinct 去重复,唯一的 获取的数据 distinct 指定的字段只保留一个结果
		//	group by 分组 将数据依据某个字段进行分组
		
		//	啊,试了楼上的语句你大概会发现,嗯 distinct 指定的字段还是会有重复的(当然也可能没有重复,因为你的数据太少了。)
		//	这是因为 group 依旧 fieldTwo 作为分组条件,这样的话每个 fieldTwo 的分组里面的 fieldOne 就是具有唯一的。
		//	为什么我感觉很少有人需求我上面那样的写法,(嗯,我这样写出来也是单纯的为了直接将两个方法写出来而已。)
	
	
	/****************	distinct 去重	***************************/
	
	//	数据查询,去除重复的,只取唯一值
	$sql = 'select distinct field from tableName';
	$result = $DB -> query($sql);
	var_dump($result);
		//	这样就能够获取整个数据内所有的不同 field 了。
		//	如果想要统计他们的数量,可以这样写。
		
		$sql = 'select count(distinct field) as total from tableName';
		$result = $DB -> query($sql);
		var_dump($result);
			//	count mysql 统计函数,统计返回数据的总数量。
	
	
	/***************************	group by 分组	*****************************/
	//	数据分组查询
	$sql = 'select field from tableName group by field';
	$result = $DB -> query($sql);
	var_dump($result);
		//	数据将依据 field 进行分组返回,(其实已经去重复了,因为每个分组的名字肯定是不同的,就好比数组的键一样)
		//	而且改操作支持多个参数的,已逗号添加,值得注意的是,mysql 会依据参数先后进行分组。
	//	人狠话不多,上代码
	$sqlOne = 'select fieldOne,fieldTwo from tableName group by '. 'fieldOne,fieldTwo';
	
	$sqlTwo = 'select fieldOne,fieldTwo from tableName group by '. 'fieldTwo,fieldOne';
		//	注意后面操作 group by 的两个字段顺序是不同的,如果你执行后,两个语句所返回的结果也是不相同的。
		//	至于分组操作能够做写什么呢?举个例子,我想知道每个 部门 fieldOne 下面对应下面每个 小组 fieldTwo 的总业绩 fieldThree(再下去我就不知道怎么分组了。),语句如下:
			
			$sql = 'select fieldOne,fielTwo,sum(fieldThree) as total from tableName group by fieldOne,fieldTwo';
			$result = $DB -> query($sql);
			var_dump($result);
			//	sum 统计函数 求和函数 统计该字段所有值的和
			//	这样就能够清晰快速得获取到对应数据,不用再继续其它操作那么麻烦了的。
			
	/*******************************	2018.04.13日 更新 ***************************/
		//	别提到一个问题,根据性别统计每个性别所有的总人数。
			//	分析下,根据性别返回即 分组 group by sex ,每个性别分别有多少人,总人数,即总数据量 count('') as total ,那么 sql 语句可使用以下:
			$sql = 'select sex,count('') as total from tableName group by sex';
			$result = $DB -> query($sql);
			var_dump($result);
			//	得出结果:
				/*
					+-----+-------+
					| sex | total |
					+-----+-------+
					| 1   | 10    |
					| 2   | 20    |
					| 3   | 1     |
					+-----+-------+
				*/
	


嗯,最后解释下,我为什么没有发图片,这是为了让看到的人自己手动敲,加深映像,最多下次我准备 sql 来供使用好了。(决不是因为懒得截图保存插入)(最后说句心理话,本来就只是打算写个自己的备忘录而已。)

你可能感兴趣的:(mysql,学习与深入)