mysql中BIT COUNT的統計使用

2021-08-30 10:17:33 字數 1567 閱讀 2575

mysql

中bit_count

的統計使用

根據天計算訪問量

下面的例子顯示了如何使用位組函式來計算每個月中使用者訪問網頁的天數。

create   table  t1 ( year   year ( 4 ),  month   int ( 2 ) unsigned zerofill,              day   int ( 2 ) unsigned zerofill);

insert   into  t1  values ( 2000 , 1 , 1 ),( 2000 , 1 , 20 ),( 2000 , 1 , 30 ),( 2000 , 2 , 2 ),            ( 2000 , 2 , 23 ),( 2000 , 2 , 23 );

示例表中含有代表使用者訪問網頁的年-月-日值。可以使用以下查詢來確定每個月的訪問天數:

select   year , month ,bit_count(bit_or( 1 << day ))  as  days  from  t1        group   by   year , month ;

將返回:

+ -- ----+-------+------+

|   year   |   month   |  days  |

+ -- ----+-------+------+

|   2000   |      01   |      3   |

|   2000   |      02   |      2   |

+ -- ----+-------+------+

該查詢計算了在表中按年/

月組合的不同天數,可以自動去除重複的詢問。

上面例子中的查詢語句:

select year,month,bit_count(bit_or(1<

中的」bit_count(bit_or(1<「用法比較有技巧。 1

、bit_count( expr )

:返回expr

的二進位制表示式中」1

「的個數。

例如:29 = 11101

則:bit_count

(29)= 4;

2、bit_or( expr )

:返回expr

中所有位元的bitwise or

。計算執行的精確度為64

位元(bigint) 。

例如:上面例子中,2000

年02月中有一條2

號的記錄兩條23

號的記錄,所以"1《表示出來就是「1

<<2」和「1

<<23

」,得到二進位制數100

和100000000000000000000000

。然後再or

運算。即100 or 10000000000000000000000 or 10000000000000000000000 = 100000000000000000000100

;這樣再用bit_count

處理得出的值就是2

,自動去除了重複的日期。

mysql中BIT COUNT的統計使用

下面的例子顯示了如何使用位組函式來計算每個月中使用者訪問網頁的天數。create tablet1 year year 4 month int 2 unsigned zerofill,day int 2 unsigned zerofill insert intot1values 2000 1 1 20...

mysql中的編碼 mysql中的編碼

一 mysql中的編碼 mysql show variables like collation mysql show variables like character set 預設是latin1編碼,會導致中文亂碼。修改庫的編碼 mysql alter database db name charac...

mysql中 變數 mysql中的變數

toc 變數 mysql本質是一種程式語言,需要很多變數來儲存資料。mysql中很多的屬性控制都是通過mysql中固有的變數來實現的。系統變數 系統內部定義的變數,系統變數針對所有使用者 mysql客戶端 有效。檢視系統所有變數 show variables like pattern mysql允許...