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