欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL中count(distinct?col...)組合使用的注意要點詳解

 更新時間:2024年08月09日 08:26:51   作者:PiaoYoung  
@count()是一個聚合函數,返回指定匹配條件的行數,開發(fā)中常用來統(tǒng)計表中數據、全部數據、不為null數據或者去重數據,這篇文章主要給大家介紹了關于MySQL中count(distinct?col...)組合使用的注意要點,需要的朋友可以參考下

第一步:數據準備

mysql> select * from my_student;
+----+------------+-----------+--------+--------+
| id | number     | name      | sex    | addr   |
+----+------------+-----------+--------+--------+
|  1 | itcast0001 | Jim       | female | 北京   |
|  2 | itcast0002 | HanMeimei | female | 上海   |
|  3 | itcast0003 | Kate      | female | NULL   |
|  4 | itcast0004 | Tom       | male   | NULL   |
|  5 | itcast0005 | LinTao    | male   | NULL   |
|  6 | itcast0006 | 張越      | 女     | NULL   |
+----+------------+-----------+--------+--------+
6 rows in set (0.00 sec)

第二步:數據驗證

1.distinct單字段去重

mysql> select distinct addr from my_student;
+--------+
| addr   |
+--------+
| 北京   |
| 上海   |
| NULL   |
+--------+
3 rows in set (0.00 sec)

2.count和distinct配合使用

1).count(distinct col) 計算該列除 NULL 之外的不重復行數。

    mysql> select count(distinct addr) from my_student;							①
	+----------------------+
	| count(distinct addr) |
	+----------------------+
	|                    2 |
	+----------------------+
	1 row in set (0.00 sec)
	
	-- 把上述SQL改寫成 select count(1) from (select distinct col from ...) a; 
	mysql> select count(1) from (select distinct addr from my_student) a;		②
	+----------+
	| count(1) |
	+----------+
	|        3 |
	+----------+
	1 row in set (0.00 sec)

注意比較①和②的結果,是不同的.

2).count(distinct col1, col2) 如果其中一列全為 NULL,那么即使另一列有不同的值,也返回為 0。

    mysql> select distinct sex,addr from my_student;
	+--------+--------+
	| sex    | addr   |
	+--------+--------+
	| female | 北京   |
	| female | 上海   |
	| female | NULL   |
	| male   | NULL   |
	| 女     | NULL   |
	+--------+--------+
	5 rows in set (0.00 sec)
	
	mysql> select count(distinct sex,addr) from my_student;                     ③
	+--------------------------+
	| count(distinct sex,addr) |
	+--------------------------+
	|                        2 |
	+--------------------------+
	1 row in set (0.00 sec)

	mysql> select count(1) from (select distinct sex,addr from my_student) a;	④
	+----------+
	| count(1) |
	+----------+
	|        5 |
	+----------+
	1 row in set (0.00 sec)

注意比較③和④的結果,也是不同的.

3.上述同樣的操作在oracle數據庫驗證

1).針對上述1)的場景在oracle數據庫中驗證后,count(distinct col)也是會計算該列除 NULL 之外的不重復行數,同MySQL一樣

2).針對上述2)的場景,count(distinct col1, col2)的寫法在oracle數據庫中不支持.

總結

到此這篇關于MySQL中count(distinct col...)組合使用的注意要點的文章就介紹到這了,更多相關MySQL count(distinct col...)組合使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • CentOS 7下MySQL服務啟動失敗的快速解決方法

    CentOS 7下MySQL服務啟動失敗的快速解決方法

    CentOS 7下MySQL服務啟動失敗怎么辦?下面小編就為大家?guī)硪黄狢entOS 7下MySQL服務啟動失敗的快速解決方法?,F在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-03-03
  • 解決mysql錯誤:Subquery?returns?more?than?1?row問題

    解決mysql錯誤:Subquery?returns?more?than?1?row問題

    這篇文章主要介紹了解決mysql錯誤:Subquery?returns?more?than?1?row問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 阿里云ECS centos6.8下安裝配置MySql5.7的教程

    阿里云ECS centos6.8下安裝配置MySql5.7的教程

    阿里云默認yum命令下的MySQL是5.17****,安裝mysql5.7之前先卸載以前的版本。下面通過本文給大家介紹阿里云ECS centos6.8下安裝配置MySql5.7的教程,需要的的朋友參考下吧
    2017-07-07
  • Mysql中的concat函數(拼接函數)詳解

    Mysql中的concat函數(拼接函數)詳解

    很多時候,我們需要將不同地方獲得的字符串拼接在一起,此時就需要使用CONCAT和CONCAT_WS函數,這篇文章主要介紹了Mysql中的concat函數(拼接函數),需要的朋友可以參考下
    2023-02-02
  • 深入分析MySQL數據類型 DECIMAL

    深入分析MySQL數據類型 DECIMAL

    這篇文章主要介紹了MySQL數據類型 DECIMAL的相關資料,幫助大家更好的理解和使用MySQL數據庫,感興趣的朋友可以了解下
    2020-09-09
  • MySQL EXPLAIN語句的使用示例

    MySQL EXPLAIN語句的使用示例

    這篇文章主要介紹了MySQL EXPLAIN語句的使用示例,幫助大家更好的理解和學習使用MySQL,感興趣的朋友可以了解下
    2021-03-03
  • Mysql8創(chuàng)建用戶及賦權操作實戰(zhàn)記錄

    Mysql8創(chuàng)建用戶及賦權操作實戰(zhàn)記錄

    一般在開發(fā)中,我們需要新建一個賬戶,并賦予某個數據庫的訪問權限,下面這篇文章主要給大家介紹了關于Mysql8創(chuàng)建用戶及賦權操作的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • MySQL報錯1040'Too?many?connections'的原因以及解決方案

    MySQL報錯1040'Too?many?connections'的原因以及解決方案

    這篇文章主要給大家介紹了關于MySQL報錯1040'Too?many?connections'的原因以及解決方案,文中通過實例代碼以及圖文介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • mysql臨時表(temporary?table)使用方法詳解

    mysql臨時表(temporary?table)使用方法詳解

    MySQL臨時表在很多場景中都會用到,MySQL內部在執(zhí)行復雜SQL時,需要借助臨時表進行分組、排序、去重等操作,下面這篇文章主要給大家介紹了關于mysql臨時表(temporary?table)使用方法的相關資料,需要的朋友可以參考下
    2024-01-01
  • MySQL索引原理詳解

    MySQL索引原理詳解

    這篇文章主要介紹了MySQL索引原理詳解,索引是幫助MySQL高效獲取數據的排好序的數據結構,最重要的點是有序的,我們用索引就是為了快速的查找數據,如果一堆數據是無序的,程序只能挨個遍歷每個元素
    2022-08-08

最新評論