以時(shí)間為跨度統(tǒng)計(jì)不同的值,在該時(shí)間出現(xiàn)的次數(shù)。
成都創(chuàng)新互聯(lián)專注于沙灣企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站建設(shè)。沙灣網(wǎng)站建設(shè)公司,為沙灣等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站開(kāi)發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
語(yǔ)言如下:
select count(*),'列名' from tablename group by '列名'
select count(*),a_yqm from user group by a_yqm
舉例:
這里,我要查詢出1年內(nèi)每個(gè)月份periods字段不同值的次數(shù)。
比如下圖中可見(jiàn)的2015-4月,periods為2出現(xiàn)了3次,3出現(xiàn)了1次,最關(guān)鍵的是 periods你不知道有多少種可能的值,也許這個(gè)月有1,也許沒(méi)有。
貌似明白你的意思了。這是我寫的測(cè)試,你看是不是這個(gè)意思:
準(zhǔn)備測(cè)試環(huán)境:
CREATE
TABLE
`tt`
(
`id`
int(11)
NOT
NULL
default
'0',
`value`
varchar(2)
default
'',
PRIMARY
KEY
(`id`)
);
insert
into
tt
values(1,'a');
insert
into
tt
values(2,'b');
insert
into
tt
values(3,'c');
insert
into
tt
values(4,'a');
insert
into
tt
values(5,'b');
開(kāi)始:
1,怎么樣得到相同的值的和
a有相同的
b有相同的
a
b
為兩個(gè)2
mysql
select
tt1.value,count(*)
from
tt
as
tt1
,tt
as
tt2
where
tt1.id!=tt2.id
and
tt1.value=tt2.value
group
by
tt1.value;
+-------+----------+
|
value
|
count(*)
|
+-------+----------+
|
a
|
2
|
|
b
|
2
|
+-------+----------+
2
rows
in
set
(0.00
sec)
//
得到相同的次數(shù)
mysql
select
count(*)
from
(select
tt1.value
from
tt
as
tt1
,tt
as
tt2
where
tt1.id!=tt2.id
and
tt1.value=tt2.value
group
by
tt1.value
)as
tt3;
+----------+
|
count(*)
|
+----------+
|
2
|
+----------+
1
row
in
set
(0.00
sec)
//
得到不同的次數(shù)
mysql
select
count(*)
from
(select
tt1.value
from
tt
as
tt1
,tt
as
tt2
where
tt1.id!=tt2.id
and
tt1.value!=tt2.value
group
by
tt1.value
)as
tt3;
+----------+
|
count(*)
|
+----------+
|
3
|
+----------+
1
row
in
set
(0.00
sec)
2,和不同值的和上面得到一個(gè)2
然后用
最大的ID減
5
-2
=
3
這里不太明白
不同值的和應(yīng)該是3
也就是abc3種了,相同的和是2
,
無(wú)論如何,2種情況我都寫下來(lái)
mysql
select
max(id)-
(select
count(*)
from
(select
tt1.value
from
tt
as
tt1
,tt
as
tt2
where
tt1.id!=tt2.id
and
tt1.value=tt2.value
group
by
tt1.value
)as
tt3)
from
tt;
+-------------------------------------------------------------------------------
-----------------------------------------------------------------------+
|
max(id)-
(select
count(*)
from
(select
tt1.value
from
tt
as
tt1
,tt
as
tt2
wh
ere
tt1.id!=tt2.id
and
tt1.value=tt2.value
group
by
tt1.value
)as
tt3)
|
+-------------------------------------------------------------------------------
-----------------------------------------------------------------------+
|
3
|
+-------------------------------------------------------------------------------
-----------------------------------------------------------------------+
1
row
in
set
(0.00
sec)
mysql
select
max(id)
-
(select
count(*)
from
(select
tt1.value
from
tt
as
tt1
,tt
as
tt2
where
tt1.id!=tt2.id
and
tt1.value!=tt2.value
group
by
tt1.value
)as
tt3)
from
tt;
+-------------------------------------------------------------------------------
------------------------------------------------------------------------+
|
max(id)
-
(select
count(*)
from
(select
tt1.value
from
tt
as
tt1
,tt
as
tt2
wh
ere
tt1.id!=tt2.id
and
tt1.value!=tt2.value
group
by
tt1.value
)as
tt3)
|
+-------------------------------------------------------------------------------
------------------------------------------------------------------------+
|
2
|
+-------------------------------------------------------------------------------
------------------------------------------------------------------------+
1
row
in
set
(0.00
sec)
你看你的意思是不是這個(gè)
insert會(huì)更快一點(diǎn),可以使用 INSERT INTO target_table SELECT columns FROM source_table 高效地將大量行從一個(gè)表(例如臨時(shí)表)。
傳輸?shù)桨醋钚》绞接涗浫罩镜钠渌碇?。按最小方式記錄日志可以提高語(yǔ)句的性能,減少在事務(wù)期間此操作填充可用事務(wù)日志空間的可能性。INSERT INTO 語(yǔ)句用于向表格中插入新的行。
INSERT INTO 表名稱 VALUES (值1, 值2,....)INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')。
Update是一個(gè)數(shù)據(jù)庫(kù)SQL語(yǔ)法用語(yǔ),用途是更新表中原有數(shù)據(jù),單獨(dú)使用時(shí)使用where匹配字段。Update 語(yǔ)句用于修改表中的數(shù)據(jù)。UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值。
擴(kuò)展資料:
UPDATE的用法:
更新某一行中的一個(gè)列。
我們?yōu)?lastname 是 quot;Wilsonquot; 的人添加 firstname:
UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson' 。
更新某一行中的若干列。
我們會(huì)修改地址(address),并添加城市名稱(city):
UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'WHERE LastName = 'Wilson'。
參考資料來(lái)源:百度百科-SQL INSERT INTO
參考資料來(lái)源:百度百科-update
數(shù)據(jù)量有多大?上億條?實(shí)際的應(yīng)用范圍是什么?select * from table where id=? and name=? 這樣效率已經(jīng)ok的了,別忘了id和name的索引