mysql表中数据统计

Linda426 2012-03-05 03:31:51
有一个mysql创建的表doc_order,表有两个字段a和b,都是text类型,表没有主键。字段a和b的值都有重复值,但是表中没有重复的记录,现在想统计以下信息:
(1)针对字段a的每一个取值,相应的记录的个数?
(2)针对字段a的每一个取值,相应的记录个数小于3个的a的取值有多少个?
(3)针对字段b的每一个取值,相应的记录的个数?
(4)针对字段a的每一个取值,相应的记录个数小于3个的b的取值有多少个?
...全文
61 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Linda426 2012-03-05
  • 打赏
  • 举报
回复
非常感谢wwwwb!
也感谢其他二位的热情解回答!
rucypli 2012-03-05
  • 打赏
  • 举报
回复
有一个mysql创建的表doc_order,表有两个字段a和b,都是text类型,表没有主键。字段a和b的值都有重复值,但是表中没有重复的记录,现在想统计以下信息:
(1)针对字段a的每一个取值,相应的记录的个数?
select count(distinct a) from doc_order
(2)针对字段a的每一个取值,相应的记录个数小于3个的a的取值有多少个?
select count(*) from (select a n from doc_order group by a having count(*)<3) tb

(3)针对字段b的每一个取值,相应的记录的个数?
select count(distinct b) from doc_order
(4)针对字段a的每一个取值,相应的记录个数小于3个的b的取值有多少个?

select count(*) from doc_order where a in (select a n from doc_order group by a having count(*)<3)
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 linda426 的回复:]

第2跟第4个问题最后怎么都带个d?
[/Quote]

因为使用了子查询作为输入表,所以的给它取个别名
Linda426 2012-03-05
  • 打赏
  • 举报
回复
第2跟第4个问题最后怎么都带个d?
  • 打赏
  • 举报
回复

(1)针对字段a的每一个取值,相应的记录的个数?
select a,count(*) from doc_order group by a
(2)针对字段a的每一个取值,相应的记录个数小于3个的a的取值有多少个?
select count(*) from (
select a from doc_order group by a having count(*)<=3) d
(3)针对字段b的每一个取值,相应的记录的个数?
select b,count(*) from doc_order group by b
(4)针对字段a的每一个取值,相应的记录个数小于3个的b的取值有多少个?
select count(*) from (
select b from doc_order group by b having count(*)<=3) d
wwwwb 2012-03-05
  • 打赏
  • 举报
回复
1
select a,count(*) from doc_order group by a
2
select count(*) from (
select a from doc_order group by a having count(*)<=3) d
3
select b,count(*) from doc_order group by b
4
select count(*) from (
select b from doc_order group by b having count(*)<=3) d

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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