15 分鐘分隔數(shù)據(jù)
SELECT
CONCAT(DATE_FORMAT(time, '%Y-%m-%d %H:'),
FLOOR(DATE_FORMAT(time, '%i') / 15)) AS c,
count(*) FROM your_table
WHERE appid = 1097492828 AND
time BETWEEN '2020-10-16 00:00:00' AND '2020-10-16 23:59:59' AND
source in ('1','2','3','4','5','6','7')
group by c order by time asc ;
按半小時統(tǒng)計
SELECT time, COUNT( * ) AS num
FROM
(
SELECT Duration,
DATE_FORMAT(
concat( date( TimeStart ), ' ', HOUR ( TimeStart ), ':', floor( MINUTE ( TimeStart ) / 30 ) * 30 ),
'%Y-%m-%d %H:%i'
) AS time
FROM your_table
WHERE Flag = 0 AND Duration >= 300
) a
GROUP BY DATE_FORMAT( time, '%Y-%m-%d %H:%i' )
ORDER BY time;
(1)功能:獲取某一天的創(chuàng)建用戶時間間隔
(2)MySQL相鄰兩條記錄時間差
參考:
https://bugyun.iteye.com/blog/2435908
https://blog.csdn.net/yjgithub/article/details/75433345
SELECT *
FROM
(SELECT @a:=@a+1 AS aaa,
two.id,
two.idfa,
two.currentsecond,
two.previoussecond,
(two.currentsecond - two.previoussecond)/60 AS intervalsecond ,
TIME
FROM
(SELECT one.id,
one.idfa,
one.time,
unix_timestamp(one.time) currentsecond,
@one.time AS previoussecond, @one.time := unix_timestamp(one.time)
FROM
(SELECT *
FROM mkq_third_log_click
WHERE appid='1116552647'
AND SOURCE='chuangqi'
AND TIME BETWEEN '2019-05-20' AND '2019-05-23'
AND idfa IN
('8CB1E69D-5487-4203-B4E3-AD084F117CEB',
'96A643BA-94CD-4B91-8E74-85A38CF776E8',
'0A0FA6D1-321B-484E-A92C-5A4DE9D95ECA')
ORDER BY idfa,TIME) AS one) AS two
ORDER BY idfa,
TIME)AS a
;
SQL_CALC_FOUND_ROWS使用
在很多分頁的程序中都這樣寫:
SELECT COUNT(*) from table WHERE ......; 查出符合條件的記錄總數(shù)
SELECT * FROM table WHERE ...... limit M,N;查詢當頁要顯示的數(shù)據(jù)
這樣的語句可以改成:
SELECT SQL_CALC_FOUND_ROWS * FROM table WHERE ...... limit M, N;
SELECT FOUND_ROWS();
參考
http://blog.csdn.net/guoguo1980/article/details/1515685
IfNULL使用
1.select IfNULL(qa_real_name,username)
2.where 后用 ISNULL(svip_expire_time)
MySQL in 優(yōu)化
避免使用in 或者 or (or會導(dǎo)致掃表),使用union all
使用UNION ALL:
(select * from article where article_category=2 order by article_id desc limit 5)
UNION ALL
(select * from article where article_category=3 order by article_id desc limit 5)
orDER BY article_id desc
limit 5
FIND_IN_SET用法
MYSQL列中的數(shù)據(jù)以逗號隔開
MYSQL FIND_IN_SET (str, strlist) 在strlist中查找str,strlist可以是列名,查找默認是以逗號隔開