mysql 分組查詢

2021-08-15 23:46:05 字數 1874 閱讀 1190

create table `wz` (

`id` int(10) unsigned not null auto_increment,

`province` varchar(8) not null default '',

`city` varchar(32) not null default '',

`hphm` varchar(8) not null default '',

`hpzl` varchar(2) not null default '',

`engineno` varchar(64) not null default '',

`classno` varchar(64) not null default '',

`registno` varchar(64) not null default '',

`date` varchar(32) not null default '',

`area` varchar(255) not null default '',

`act` varchar(255) not null default '',

`code` varchar(32) not null default '',

`fen` varchar(32) not null default '',

`money` varchar(32) not null default '',

`handled` varchar(1) not null default '',

`addtime` bigint(20) not null default '0',

`wzcity` varchar(32) not null default '',

`jobid` varchar(32) not null default '',

`adddate` date not null,

`archiveno` varchar(64) not null default '' comment '違章項文書編號',

`department` varchar(128) not null default '' comment '違章採集機關',

表中的資料為每次查詢的車輛,如果有多個違章記錄則同時插入到資料表中,如果所示,此時我想查出前五百個車輛的違章資訊,要求必須是連續的違章記錄,比如這輛車今天查詢了一次,半年後又查詢了一次,那麼半年後的查詢的記錄的id和今天查的那是不連續的,所以只應該取出今天的.

先根據車牌hphm欄位進行分組,取出最小的id,如果想查詢500個車輛,那麼我分組的時候找出前501個車的最小id,那麼再查詢比這個最小的id都小的記錄就是前500個車的違章記錄了,而且id是連續的,

select 

* from

`wz` 

where id

(select 

max(t.minid) 

from

(select 

min(id) as minid 

from

`wz` 

group by hphm 

order by minid 

limit 500) t)

mysql 分組查詢

分組函式,又稱聚合函式,是將一類資料統計後獲得乙個值 1.計算 sum 求和 g 平均值 max 最大值 min 最小值 count 個數 不管什麼引擎下,count 效率最高 以上函式忽略null值 2.distinct 去重 sum distinct id 先去重,再求和。3.group by ...

mysql分組查詢效能優化 MySQL分組查詢優化

我有三個表 類別,文章和article events,具有以下結構 categories id,name 100,000 rows articles id,category id 6000 rows article events id,article id,status id 20,000 rows...

MySQL區間分組查詢

假設a表為會員資訊表,需要統計男性會員年齡各階段的出現的人數 create table a id int 11 unsigned not null auto increment,name varchar 255 not null default comment 會員名稱 tinyint 1 unsi...