Mysql刷题笔记

28 阅读1分钟
  1. CHAR_LENGTH() 或 LENGTH() 函数来计算列中字符串的字符数。这两个函数的区别在于处理非 ASCII 字符时的行为:CHAR_LENGTH() 返回字符串的字符数,而 LENGTH() 返回字符串的字节数。对于 ASCII 字符,这两个函数的结果是相同的。length()中一个汉字会算3个字符,而char_length() 一个汉字算一个字符。 2.if else使用例子 select x, y, z, if ( x + y > z and x + z > y and y + z > x,'Yes','No') as triangle from Triangle
  2. leetcode 1907 按分类统计薪水 思路:三个薪水类别先分开查,然后再一起union起来
  3. rows between xx preceding and current row 划定取值范围从前xx行到现在,可以规定取多少行的值为一组计算。或者使用range interval xx day preceding ,在对日期取范围时同样适用。
  4. like 可以理解为包含或长得像;%字符%表示匹配的字符前面和后面多有可能有或者没有其他字符。
  5. 正则表达:\b单词边界,确保单词是独立出现的,不会有前缀
  6. 聚合函数,除了count以外,其它在找不到匹配结果时,天然返回null
  7. 查询具体排名第二,方法一:dense_rank(),方法二,distinct+order+limit(1,1)
  8. 正则表达:mail regexp '^[a-zA-Z][a-zA-Z0-9_./-]*@leetcode\.com$'

平均次日留存率

思路:1. 表连接得到表2包含第1,2天都登录的用户 2. 用表2中用户去重数/原表用户去重数(牛客SQL29)