首页 > 数据库 >mysql group by having用法

mysql group by having用法

时间:2022-10-27 12:34:39浏览次数:46  
标签:10 group 分组 mysql DATE 2017 MY having

mysql中group by里面的问题
GROUPBYdept,name的意思,就是先按dqpt分组,如果出现dept相同的,再按name分组,也就是说除非出现dept和name都相同的记录才会合为一组,否则的话是不会合在一起的,这样的话显示出的name就只有一个了。
你用现实生活中的例子来理解一下就很明白啦:比如说你们班上的同学如果按性别来分组,可以分为两组,如果按照姓名来分组,那就基本上有多少个同学就有多少组(除非有同名同姓的),那如果按性别和姓名同时分组呢,那分的组就是同学数的两倍了,即“男的张三”一组,“女的张三”一组,“男的李四”一组,“女的李四”一组……当然,这其中有一半的组是空的,剩下的也是每一组只有一个人啊!理解没有?
所以Groupby后面的分组字段不是随便加的,多个字段的分组是需要排列组合的,分的组数会按几何级数增长!
补充说一句:本来按名字来分组就是个愚不可及的想法了!更何况还要加上其他分组条件,这样的话基本上就是一组只有一个了!
更多追问追答
你mysql都会?
我前端、后台、美工等都会,还会架设服务器,总之一个网站从无到有的全过程我都可以独立完成(除了要拿螺丝刀的那种),此外我还可以独立开发软件、APP、微信小程序等等,厉害吧,哈哈
Linux也会
如何在mysql中group by week
以周一作为一周的开始,使用mysqlweek行数模式5:
作为周划分的标准,比如20170101是周天,week(20170101,5)=0,
分WEEK_IN_MONTH,和WEEK_IN_YEAR两种情况进行分组:
WEEK_IN_YEAR:
#bysleest2017/03/29按每个日期所在一年中的第几周分组汇总
SELECTWEEK(MY_DATE,5)+1ASWEEK_OF_YEAR,COUNT(1)ASCOUNT,
GROUP_CONCAT(MY_DATE)ASINCLUDE_DATE
FROM(SELECT'2017-01-01'ASMY_DATE
UNIONALL
SELECT'2017-02-08'
UNIONALL
SELECT'2017-02-03'
UNIONALL
SELECT'2017-02-01'
UNIONALL
SELECT'2017-01-21')TMP
GROUPBYWEEK(MY_DATE,5)+1;
WEEK_IN_MONTH:
#bysleest2017/03/29按每个日期所在每个月的第几周分组汇总
SELECTWEEK(MY_DATE,5)-WEEK(DATE_SUB(MY_DATE,INTERVALDAYOFMONTH(MY_DATE)-1DAY),5)+1ASWEEK_OF_MONTH,
COUNT(1)ASCOUNT,
GROUP_CONCAT(MY_DATE)ASINCLUDE_DATE
FROM(SELECT'2017-01-01'ASMY_DATE
UNIONALL
SELECT'2017-02-08'
UNIONALL
SELECT'2017-02-03'
UNIONALL
SELECT'2017-02-01'
UNIONALL
SELECT'2017-01-21')TMP
GROUPBYWEEK(MY_DATE,5)-WEEK(DATE_SUB(MY_DATE,INTERVALDAYOFMONTH(MY_DATE)-1DAY),5)+1
mysql group by怎么用
例子 aa表ab
12310
12312
123411
123414
首先 group 是用来分组的 不是过滤重复项的。重复项删除语句 DISTINCT用这个 。 select DISTINCT(a) from aa
结果就是a
123
1234
group by用来分组的
select a, sum(b) from aa group by a
sum意思是总和。结果就是
ab
12322
123425
语句的目的是以a为目标 需要知道 相同名字的物品在b列一共有多少数量总和
select a,count(b) from aa group by a
count 意思行数总和结果就是
ab
1232
12342
语句目的是 相同名字的物品 一共有几行order by 是对表字段的排序
group by 是对表字段的分组
怎么会一样呢?
建议你应该好好学习mysql查询的基础才行。
mysql group by 的用法,集合后取出指定的字段
mysql group by 用法解析(详细)
星期三, 09/21/2011 - 14:33 — jason
group by 用法解析
group by语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。
SELECT子句中的列名必须为分组列或列函数。列函数对于GROUP BY子句定义的每个组各返回一个结果。
某个员工信息表结构和数据如下:
id name dept salary edlevel hiredate
1 张三 开发部 2000 3 2009-10-11
2 李四 开发部 2500 3 2009-10-01
3 王五 设计部 2600 5 2010-10-02
4 王六 设计部 2300 4 2010-10-03
5 马七 设计部 2100 4 2010-10-06
6 赵八 销售部 3000 5 2010-10-05
7 钱九 销售部 3100 7 2010-10-07
8 孙十 销售部 3500 7 2010-10-06
例如,我想列出每个部门最高薪水的结果,sql语句如下:
SELECT DEPT, MAX(SALARY) AS MAXIMUM
FROM STAFF
GROUP BY DEPT
查询结果如下:
DEPT MAXIMUM
开发部 2500
设计部 2600
销售部 3500

标签:10,group,分组,mysql,DATE,2017,MY,having
From: https://blog.51cto.com/yetaotao/5800743

相关文章

  • mysqlmycnf配置项规则查看
    linux怎么查看mysql配置查看方法如下:1、linux下查看mysql的配置文件[root@localhost~]#vi/etc/my.cnf查看mysql是否启动2、mysql的守护进程是mysqld[root@localhost~]#servi......
  • mysql MMM架构
    mysqlmmm架构一台master坏了怎么办一、agent进程[[email protected]]#/etc/init.d/mysql-mmm-agentstartDaemonbin:'/usr/sbin/mmm_agentd'Daemonpid:'/var/run......
  • mysqlmvcc-csdn
    既然MySQL中InnoDB使用MVCC,为什么REPEATABLE-READ不能消除幻读第一个问题:新版本的mysql通过mvcc解决了幻读的问题,所以你没有看到的幻读现象第二个问题:B事务是没有办法看到A......
  • mysqlsource命令导入
    mysqlsource会不会覆盖数据source是执行文件中的SQL语句,是否覆盖、丢失的问题,你要检查你的SQL语句文件,如果文件里面有删除表、建立表的语句,那么现有数据会丢失。另外查看......
  • 热修复之mysqlcheck,(数据库xx is marked as crashed and should be repaired故障)
    数据库报xxismarkedascrashedandshouldberepaired故障。检查单个库中的所有表:#mysqlcheck-cbasename-uroot-pEnterpassword:如下扫描到错误:检查,优化,修......
  • mysql修改某个记录某字段的值
    MySQL:如何更新某个字段的值为原来的值加1SQLSERVERNavicat我测试了一下,可以给某个字段运行一次自动加一,自动加一的字段是整形,int等mysql中在同一张表如何将一条记录的某一......
  • mysql怎么修改存储引擎
    Windows下如何更改MySQL数据库的存储位置1.7Windows10更改新内容保存位置(变声)如何查看和更改mysql数据库文件存放位置查看my.ini或my.conf文件,从中查找datadir设置,可以得......
  • mysql修改字段类型长度
    mysql中字段为TEXT类型的内容怎么修改?可以把字段类型改成MEDIUMTEXT(最多存放16777215个字符)或者LONGTEXT(最多存放4294967295个字符).MySQLsupports4TEXTfieldtypes(TINYT......
  • Mysql系统表
    mysql系统数据库有哪些默认的有mysql,test这几个数据库。从MySQL5开始,可以看到多了一个系统数据库information_schema.information_schema存贮了其他所有数据库的信息。inf......
  • mysql字段名区分大小写吗
    mysql怎样修改字段值,详细工具/材料:电脑、mysql1、首先打开mysql,输入命令describe数据表名称,查看当前的数据表结构信息。2、如果想要添加新的字段信息,那么通过命令alter...ad......