sql语句执行顺序
通过登录日志查找统计用户登录次数
ex:id name status time
1 张三 loginin 2016-11-01 00:00:00
2 张三 loginout 2016-11-01 07:00:00
3 李四 loginin 2016-11-01 00:00:00
4 李四 loginout 2016-11-01 04:00:00
5 张三 loginin 2016-11-01 08:09:00
6 升水 loginin 2016-11-02 00:00:00
7 张三 loginout 2016-11-02 00:00:00
8 升水 loginout 2016-11-03 00:00:00
9 李四 loginin 2016-11-04 00:00:00
10 张三 loginin 2016-11-05 00:00:00
11 张三 loginout 2016-11-05 00:00:00
12 张三 loginin 2016-11-07 00:00:00
13 张三 loginout 2016-11-08 00:00:00
14 李四 loginout 2016-11-09 00:00:00
15 张三 loginin 2016-11-10 00:00:00
sql:
select name,ceil(count(name)/2) as count from login_log group by name
其中:
ceil () /ceiling() 向上取整
ex: ceil(1.2) = 2
floor () 向下取整
ex: floor(1.2) = 1
round() 四舍五入
结果:
//统计每个人的英语成绩
select name,score from koii_a where subject=‘英语’
//统计每个学生的总成绩
select name,sum(score) as 总分 from koii_a group by name
// 总成绩>9分的学生
select name,sum(score) as 总分 from koii_a group by name having sum(score)>9
(having在select前执行,所以不能用’总分’代替 sum(score))
-- 查询所有包含空格的数据 不能用trim 有些不是空格
select * from uop_user where regexp_like(name, '\\s+');
-- 去除多余空白字符
update uop_user set name = regexp_replace(name, '\\s+', '') where regexp_like(name, '\\s+');