關於乙個sql,六一兒童節快樂

2021-06-06 21:11:59 字數 1487 閱讀 7189

*查詢test表中lotetype欄位中有且只有兩個相同的記錄,且這兩條記錄中的date_time時間間隔為十分鐘,取其中的一條作為結果輸出。

表:

create table `test` (

`id` varchar(20) collate utf8_swedish_ci,

`lotetype` varchar(20) collate utf8_swedish_ci,

`date_time` timestamp not null default current_timestamp,

unique key `un_id` (`id`)

) engine=innodb auto_increment=331 default charset=utf8 collate=utf8_swedish_ci;

資料:

查詢sql:

select group_concat(distinct t1.lotetype), t1.id,t1.date_time 

from

(select t.id,t.lotetype,t.date_time from test t ,(select lotetype, count(*) as c from test group by lotetype) tc where tc.c=2 and t.lotetype = tc.lotetype) t1 ,

(select t.id,t.lotetype,t.date_time from test t ,(select lotetype, count(*) as c from test group by lotetype) tc where tc.c=2 and t.lotetype = tc.lotetype) t2

where t1.id!=t2.id

and abs(time_to_sec(timediff( t1.date_time,t2.date_time)) div 60)<10

and t1.lotetype=t2.lotetype

group by t1.lotetype;

查詢結果:

說明:1. group_concat函式結合group by去除group_concat包含的字段重複項。

2.取lotetype欄位總數為2,關鍵用到group by分組。

3.時間撮是10分鐘用到幾個函式,abs(time_to_sec(timediff( t1.date_time,t2.date_time)) div 60) ,abs取正數,time_to_sec結果是秒鐘,div除法函式

期待優化,這是乙個面試題(同事面試遇到的,出這樣的題目)。

太陽系 - 

六一兒童節

六一兒童節,老師帶了很多好吃的巧克力到幼兒園。每塊巧克力j的重量為w j 對 於每個小朋友i,當他分到的巧克力大小達到h i 即w j h i 他才會上去表演節目。老師的目標是將巧克力分發給孩子們,使得最多的小孩上台表演。可以保證每個w i 0且不能將多塊巧克力分給乙個孩子或將一塊分給多個孩子。第一...

六一兒童節

六一兒童節,老師帶了很多好吃的巧克力到幼兒園。每塊巧克力j的重量為w j 對於每個小朋友i,當他分到的巧克力大小達到h i 即w j h i 他才會上去表演節目。老師的目標是將巧克力分發給孩子們,使得最多的小孩上台表演。可以保證每個w i 0且不能將多塊巧克力分給乙個孩子或將一塊分給多個孩子。imp...

寫在六一兒童節

六一兒童節,大朋友 小朋友們,節日快樂 感謝你們深夜點開我這長圖 好久沒有寫東西了,好幾次都有寫作的衝動,可是,每次提筆的時候感覺好沉重,又好匱乏的樣子,似乎有很多東西要表達,又無從下手,甚至於一兩個字都蹦不出來窘態,冥冥之中是自廢武功好幾年的感慨,是啊,自從那年的出走,文字寫作的習慣戛然而止,趁著...