随笔分类 - MySQL
摘要:题目: 从题目可知:求活跃用户 ———— 至少连续登录5天的人 ———— 连续区间且长度大于等于5使用方法:自定义变量求次数,初始次数为0,当符合条件时,次数加1逻辑条件:id相同,前后一行时间间隔为1天【date_sub()函数】 根据以上可以得出 select id, @cnt:=if(@id=
阅读全文
摘要:这道题的难点在于求差值,因为这道题比较特殊 假设只有这两种水果 那 select sale_date, sum(if(fruit='apples', 1, -1)*sold_num) as diff from `Sales` group by sale_date order by sale_date
阅读全文
摘要:题目: 解题思路: 别人写的很好,所以不用自己重写一遍了
阅读全文
摘要:a表,时间字段为create_time 查询过去一年的数据 select * from a where create_time between date_add(date(curdate()), interval -1 year) and date(curdate()); 过去一个月 select
阅读全文
摘要:题目 解题思路 先看题目,再看结果从结果可以看出结果的前三列列为表students和subjects的交叉连接,也就是笛卡尔积而最后一列为每个学生参加每个学科的测试次数,也就是分组统计解题步骤1.求笛卡尔积 select * from `Students` as s1 cross join `Sub
阅读全文
摘要:看完题目后,我一般先看结果的样子从结果可以看出,是按照成绩自定义分组自定义分组用到 group by case when所以先得出 select case when duration/60<5 then '[0-5>' when duration/60<10 then '[5-10>' when d
阅读全文
摘要:简单函数CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END new_col_name -- 枚举 select t_name, case t_name when '张三' then '严肃' when '李四' then '
阅读全文
摘要:题目来自于leetcode 第一次看到时,第一个想法就是 使用排序和limit select Salary as SecondHighestSalary from Employee order by Salary desc limit 1 offset 1 但这个还是错误的,因为如果有一样的成绩呢,
阅读全文
摘要:limit 2 限制结果为前2条记录 limit 2, 3 从第2行开始,查询3条记录 起始值为第0行 limit 2 offset 3 查询 2条记录,从第3行开始 起始值为第0行
阅读全文
摘要:count()函数是统计字段非空的记录数,如果字段为null,则不计入 count(if(字段表达式)true,null)
阅读全文
摘要:不等于:<> ,!=,~= ,^= 这四个符号据说都可以在oracle中表示不等于 但是试了之后发现<> ,!= ,^=是可以的,~=不行 需要注意的是,只有<>是标准的sql语法,可以移植 其他的都是oracle平台的特性,移植性较差 所以开发中,尽量使用<>表示不等于
阅读全文
摘要:编辑配置文件 vim /etc/my.cnf 在【mysqld】下添加skip-grant-tables,保存并退出 重启mysql服务: service mysqld restart 修改root用户密码 重启后,输入mysql直接进入MySQL命令行 update mysql.user set
阅读全文
摘要:1、查询当天的数据 select * from 表名 where TO_DAYS(时间字段)=TO_DAYS(NOW()); 2、查询当周的数据 select * from 表名 where YEARWEEK(DATE_FORMAT(时间字段,'%Y-%m-%d'))=YEARWEEK(NOW())
阅读全文
摘要:MySQL 获得当前日期时间 函数 获得当前日期+时间(date + time)函数:now() mysql> select now(); + + | now() | + + | 2008-08-08 22:20:46 | + + 获得当前日期+时间(date + time)函数:sysdate()
阅读全文

浙公网安备 33010602011771号