ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql

2022-05-06 23:04:47  阅读:275  来源: 互联网

标签:count name question qpd mysql id SELECT


1.   substring_index(str,delim,count)

      str  表示要处理的字符串

      delim  表示分隔符

      count  计数

      select    substring_index(us.profile,',',-1) as gender,

                   count(*) as number

      from    user_submit us

      group by gender;

      比较count(*)和count(字段名)的区别:

                  前者对行的数目进行计算,包含null,

                 后者对特定的列的值具有的行数进行计算,不包含null,得到的结果将是除去值为null和重复数据后的结果。

 

2.  

      select difficult_level,
      (sum(case when qpd.result = "right" then 1 else 0 end)/count(u.answer_cnt)) as correct_rate   
      from user_profile u inner join question_practice_detail qpd on u.device_id = qpd.device_id
      inner join question_detail qd on qd.question_id = qpd.question_id
      where university = "浙江大学"
      group by difficult_level
      order by correct_rate;

  (sum(case when qpd.result = "right" then 1 else 0 end)/count(u.answer_cnt)) as correct_rate   正确率 = 正确的个数/总答题个数

  sum(case when qpd.result = "right" then 1 else 0 end)  sum表示计算和 当result="right"时为1  否则为0

  user_profile u inner join question_practice_detail qpd on u.device_id = qpd.device_id  inner join question_detail qd on qd.question_id = qpd.question_id   三张表之间连接inner join

 

3. 

      select device_id,gpa,age
      from user_profile
      order by gpa ,age

先按照业绩进行升序排序,再按照年龄进行升序排序

     select device_id,gpa,age
     from user_profile
    order by gpa desc,age desc

先按照业绩进行降序排序,再按照年龄进行降序排序

 

4.  

        CASE 测试表达式
        WHEN 简单表达式1 THEN 结果表达式1
        WHEN 简单表达式2 THEN 结果表达式2 …
        WHEN 简单表达式n THEN 结果表达式n
        [ ELSE 结果表达式n+1 ]
        END

   

      select (case when age >= 25 then "25岁及以上" else "25岁以下" end) as age_cnt,    当年龄大于25等于25时,显示为25岁及以上,否则显                                                                                                                                                示为25岁以下
      count(*) as number
      from user_profile
      group by age_cnt

5.  mysql语句的优先级

      首先要选定需要操作的表   from  / jion on / inner join

     确定操作过滤的条件   where/  and /or

     以何种方式展示数据   group by / having

     确定操作方式  select

     确定展示顺序  order by

     截取展示  limit

6. 表之间的连接

  

1.  Inner Join

     SELECT * FROM a INNER JOIN b ON a.`name` = b.`name` 显示结果为a表和b表的交集部分:

 

 2.  LEFT OUTER JOIN

      SELECT * FROM a LEFT OUTER JOIN b ON a.`name` = b.`name`显示结果为a的全部值,b表中匹配的则显示不匹配的则显示null:

3. 

     RIGHT OUTER JOIN

     SELECT * FROM a RIGHT OUTER JOIN b ON a.`name` = b.`name`显示结果为b的全部值,a表中匹配的则显示不匹配的则显示null:

4.  

  UNION

  注意:UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。

  同时,每条 SELECT 语句中的列的顺序必须相同。UNION 只选取记录,而UNION ALL会列出所有记录。

  SELECT name FROM a UNION SELECT name FROM b显示a表和b表中所有内容,相同内容只显示一次:

5.

   UNION ALL

  SELECT name FROM a UNION ALL SELECT name FROM b显示a表和b表中所有内容:



 

标签:count,name,question,qpd,mysql,id,SELECT
来源: https://www.cnblogs.com/2habc/p/16235023.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有