mysql如何查询一个表里,同一字段不同条件数据数量?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql如何查询一个表里,同一字段不同条件数据数量?相关的知识,希望对你有一定的参考价值。

下面图片是模拟的数据表,和模拟需要实现的效果。但是写了4条SQL,只能单独查询,有没有办法同时查询。或者用什么办法达到图二中想要实现的查询效果。

输出结果:

sql如下:

SELECT
T.KEFU,
COUNT( CASE WHEN T.FLAG = '1' THEN T.ID END ) 本月成交,
COUNT( CASE WHEN T.FLAG = '0' THEN T.ID END ) 本月预约,
COUNT(
CASE
WHEN T.FLAG = '1' AND DATE_FORMAT( T.DATE, '%Y%m%d' ) = DATE_FORMAT( NOW(), '%Y%m%d' )
THEN T.ID
END ) 今日成交,
COUNT(
CASE
WHEN T.FLAG = '0' AND DATE_FORMAT( T.DATE, '%Y%m%d' ) = DATE_FORMAT( NOW(), '%Y%m%d' )
THEN T.ID
END ) 今日预约
FROM
T_AA T
WHERE
DATE_FORMAT( T.DATE, '%Y%m' ) = DATE_FORMAT( NOW(), '%Y%m' )
GROUP BY T.KEFU

参考技术A 1.同时查询可以尝试:由于你查询的列数都是2列,且类型相同可以用UNION联合结果集;
2.实现图2的方式有两种:
1)在mysql中用存储过程创建图2的表结构(临时表),把你查询到的结果都写入临时表里,最后将查询结果另存为excel或者csv格式;
2)把分别查询的结果保存到excel,在excel中按照需要统计;
参考技术B

大概就这这个样子吧 ,反正我写这么写  ,也许有更简单的 俺不会··

参考技术C 有函数呀 EXCEL函数 管用

sql中如何知道字段在哪个表里?

下边是SQLSERVER中查询某字段在哪些表中含有的语法:
select sysobjects.name from syscolumns inner join sysobjects on syscolumns.id = sysobjects.id and sysobjects.xtype = 'u' where syscolumns.name = '字段名字'
参考技术A 数据库不同,查找方法不同
以下是sqlserver的,oracle的自己上网找下,也挺快的
Select *
From sysobjects s
Where Exists(
Select *
From syscolumns
Where ID = s.ID and name like '%user%'
)

参考资料:http://apps.hi.baidu.com/share/detail/33237798

参考技术B 一句话 搞定
select [name] from sysobjects where id in(select id from syscolumns Where name='字段名')
参考技术C 需求不明确 说具体点

以上是关于mysql如何查询一个表里,同一字段不同条件数据数量?的主要内容,如果未能解决你的问题,请参考以下文章

sql从同一表里查询多条不同条件的数据

mysql:只用一条sql语句,如何查出一个表里,不同条件对应的数据条数

怎样用mysql语句 查询一个表里面的一个字段下的2条数据。求大神指教!

MySQL - 数据查询语句

sql中如何知道字段在哪个表里?

Mysql语句,如何按两个不同条件查询数据~?