MySQL刷题记录1-20
1-10
【1757 可回收且低脂的产品】 判断等于的时候直接用=,另外与用的是AND
【584 寻找用户推荐人】进行不等于判断的时候直接用!=或者<>,另外判断是NULL的时候用IS
【595 大的国家】大于等于用>=
(总结一下进行大小判断的时候就是原先那些,然后就是NULL用的IS)
【1148 文章浏览】去重就在前面添加上DISTINCT,别名用as,排序在最后用ORDER BY,默认是升序
【1683 无效的推文】一个varchar类型的长度用length()函数
【1378 使用唯一标识码替换员工ID】重点是LEFT JOIN ON 的格式
【1068 产品销售分析1】重点是inner join等价于join
【1581 进店却未进行过交易的顾客】重点是GROUP BY xx对xx进行分组,然后计算count
【197 上升的温度】这道题的难点一个是构造笛卡尔积,第二个是使用datadiff函数去找到前一天的内容
【1661 每台机器的进程平均运行时间】自连接这点想到了,但是自连接的条件没有想到,分组可以想到
11-20
【577 员工奖金】很简单,过
【1280 学生们参加各科测试的次数】这道题的难点在于如何进行三表查询
n1ql
1 | SELECT |
【570 至少有5名直接下属的经理】这道题的难点在于having这个关键字的使用
pgsql
1 | select name |
【1934 确认率】挺难的,关于sum里的if的用法,round的用法,还有就是count里null的计算
n1ql
1 | select a.user_id, |
【620】有趣的电影:降序的关键字是DESC,同时余数可以用mod(xx,2)
【1251 平均售价】一个是日期可以用between and,还有一个是IFNULL的用法(重点是IFNULL不是ISNULL)
【1075 项目员工1】很简单,过
【1633 各赛事的用户注册率】这道题依旧需要用到两个表,但是不需要连接,这样的情况要如何写代码
不想连接,那就嵌套,在select语句里也可以嵌套select,只不过要看清楚这个select count() from x的语法是怎么写的
n1ql
1 | select r.contest_id, round(count(r.user_id)*100 / (select count(*) from Users),2) |
注: COUNT(SELECT FROM Users)在语法上是不允许的,因为COUNT不接受子查询作为参数。
【1211 查询结果的质量和占比】主要是非空的判断,可以直接用where语句
【1193 每月交易】当group by分组的依据不再是相等的分为一组,而是按照一个区间一个区间分组,应该怎么办?使用 DATE_FORMAT() 函数将日期按照 %Y-%m输出比如2019-01-02转换成2019-01
n1ql
1 | select DATE_FORMAT(trans_date, '%Y-%m') as month, country, |
评论