sql查询重复值的次数

gz109 2014-06-18 11:36:00
一个表 mark

id name pay
1 张三 1000
2 王磊 1200
3 张三 5853
4 王五 8574
5 高个 1259
6 高个 985

===================
怎么样来查询name字段的重复值,不知道怎么写sql,要的结果是就是 张三出现了几次,王磊出现了几次,高个出现了几次。


另外我不是很理解 group by 这个的用法和含义,有谁可以通俗点的说法告诉我下吗,谢谢。
...全文
1410 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2014-06-19
  • 打赏
  • 举报
回复
sum、max 都是数学函数,而你的 dis 列是字符型的,当然就要报错啦 group by 是分组的意思 有 group by 就按指定列的内容分组 没有 group by 就是全部记录算一组
gz109 2014-06-19
  • 打赏
  • 举报
回复
引用 2 楼 fdipzone 的回复:
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 解释一下这个结果: 1、满足“SELECT子句中的列名必须为分组列或列函数”,因为SELECT有GROUP BY DEPT中包含的列DEPT。 2、“列函数对于GROUP BY子句定义的每个组各返回一个结果”,根据部门分组,对每个部门返回一个结果,就是每个部门的最高薪水。 注意:计算的是每个部门(由 GROUP BY 子句定义的组)而不是整个公司的 MAX(SALARY)。
也就是如果要查询一个字段的总和,或者最小数,通俗一点就是做数据查询的时候就需要用 group by来从新组合 我试过,比如要查询 select id,sum(dis) from mark 这样就会报错, select id,max(dis) from mark 这个也会报错 select id,max(dis) as name from mark 这个也会报错 也就是如果用统计查询的字段必须要用 group by 来把统计查询出来的字段单独列一个字段出来,可以这样理解吗 select id,max(dis) from mark group by dis 就是查询max(dis)查询的出来的值用 group by来重新命名一个列出来
qxq421367660 2014-06-19
  • 打赏
  • 举报
回复
2楼正解。不过单词写错了。 SELECT NAME, COUNT(*) FROM mark GROUP BY NAME; 记得以前有一个面试题,有这样出过。
xuzuning 2014-06-18
  • 打赏
  • 举报
回复
select name, count(*) from mark grounp by name group by 分组键 就是依据谁进行分组
傲雪星枫 2014-06-18
  • 打赏
  • 举报
回复
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 解释一下这个结果: 1、满足“SELECT子句中的列名必须为分组列或列函数”,因为SELECT有GROUP BY DEPT中包含的列DEPT。 2、“列函数对于GROUP BY子句定义的每个组各返回一个结果”,根据部门分组,对每个部门返回一个结果,就是每个部门的最高薪水。 注意:计算的是每个部门(由 GROUP BY 子句定义的组)而不是整个公司的 MAX(SALARY)。

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧