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允許...