count(*) 與 count(1)的區別?


在mysql與oracle中

  • 如果在開發中確實需要用到count()聚合,那么優先考慮count(*),因為mysql數據庫本身對於count(*)做了特別的優化處理。
  • 有主鍵或聯合主鍵的情況下,count(*)略比count(1)快一些。 
  • 沒有主鍵的情況下count(1)比count(*)快一些。
  • count(*)將返回表格中所有存在的行的總數包括值為null的行,然而count(列名)將返回表格中除去null以外的所有行的總數(有默認值的列也會被計入)

在hive中

  • count(*)和count(1):對表中行數進行統計計算,包含null值。
  • count(某字段):對表中該字段的行數進行統計,不包含null值。如果出現空字符串,同樣會進行統計。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM