Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何从一个MySQL查询生成多个报告?

如何从一个MySQL查询生成多个报告?
EN

Stack Overflow用户
提问于 2014-01-29 11:43:53
回答 2查看 161关注 0票数 3

我需要报告与几个标准中每一个标准匹配的记录的数量。例如,每个州有多少客户。我知道我可以通过一系列MySQL SELECT语句来实现这一点,但是这看起来很麻烦,并且产生了大量的(不必要的?)MySQL电话。

你能告诉我一种更好的方法吗?我可以用一个SELECT语句查询数据库,然后使用PHP将结果过滤为变量吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-29 13:01:15

我建议为这个任务创建一个视图,以隐藏查询的复杂性。此外,如果表模式发生更改,很可能仍然希望从数据库中检索相同的信息。您可以在一个地方更改视图,而不必在可能的情况下在多个位置更改查询以满足模式更改。

不过,我将向您展示查询,因为您需要知道如何创建视图。

继续以生活在每个州的客户为例,让我们假设您还想知道有多少客户使用相同的姓氏。

我已经设置了一个模拟结构,说明您的数据库在这个SqlFiddle上可能是什么样子。

拥有相同LastName的客户

以下查询可用于获取具有相同姓氏的客户数:

代码语言:javascript
运行
AI代码解释
复制
SELECT
  LastName AS "Value",
  COUNT(*) AS "Count"
FROM Customers
GROUP BY
  LastName;

同一州的客户

类似地,可以使用如下查询检索处于同一状态的客户:

代码语言:javascript
运行
AI代码解释
复制
SELECT
  S.Name AS "Value",
  COUNT(*) AS "Count"
FROM Customers AS C
  INNER JOIN CustomerAddresses AS CA ON C.Id = CA.CustomerId
  INNER JOIN Addresses AS A ON CA.AddressId = A.Id
  INNER JOIN States AS S ON A.State = S.Id
GROUP BY
  A.State;

获取您想要的格式

您想要的格式是这两个查询的聚合。您希望两个结果集都作为一个结果集返回。因此,让我们为返回的表制定一个模式:

  • ResultType --这将保存一个与结果类型相对应的值。即“国家”
  • -这将保存聚合列的值。即“佛罗里达”
  • Count --这将保存与聚合列匹配的记录总数。

所以,既然我们有了一种格式,那么让我们创建一个使用上面的两个查询的查询,并将它们转换成这种格式。

首先,我向上述每个查询添加一个新字段:ResultType

例如:

代码语言:javascript
运行
AI代码解释
复制
"LastName" AS "ResultType"

现在,我使用UNION ALL语句将查询组合成一个查询:

代码语言:javascript
运行
AI代码解释
复制
SELECT * FROM (

  /* LastName query */
  SELECT
    "LastName" AS "ResultType",
    LastName AS "Value",
    COUNT(*) AS "Count"
  FROM Customers
  GROUP BY
    LastName

  UNION ALL

  /* States query */
  SELECT
    "State" AS "ResultType",
    S.Name AS "Value",
    COUNT(*) AS "Count"
  FROM Customers AS C
    INNER JOIN CustomerAddresses AS CA ON C.Id = CA.CustomerId
    INNER JOIN Addresses AS A ON CA.AddressId = A.Id
    INNER JOIN States AS S ON A.State = S.Id
  GROUP BY
    A.State
) AS A

在上面的SqlFiddle中,这会产生一个输出,如下所示:

代码语言:javascript
运行
AI代码解释
复制
RESULTTYPE   VALUE    COUNT
=================================
LastName     Jetson   1
LastName     Johnson  2
LastName     Milton   1
State        Florida  2
State        Georgia  1
State        Utah     1

正如您所看到的,这可能会变得非常复杂,因此您可能会考虑将其放置到视图中。然后,您就可以查询视图,就好像它是上面的表(ResultType、Value和Count)一样。这也可以让你在上面过滤。

票数 1
EN

Stack Overflow用户

发布于 2014-01-30 01:06:37

创建、选择、查询、生成表中的外侨数量,并使您想要使用的相关列外国人。以免参阅示例

选择a.id作为id从Table1中选择为.联合所有选择b.name作为名称从Table2作为b.(a或b)命令.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21441007

复制
相关文章
从 Google 搜索结果中屏蔽无价值网址
因为以前工作的需要,所接触的领域必须在 Google 中才能搜索到相关资源,国内是给屏蔽掉的。从那时开始习惯使用 Google,也不得不说它的确比国内的搜索引擎涉及的面更广,得到的有价值信息更多。但它也不是没有缺点的,当你搜索一些中文资料时,几乎每一个搜索结果页中都会看到一些相同的网站,比如“无极吧”等类似这些无价值的网站,点进去以后实际内容与你想要的根本不符,这些无价值网站浪费了我们太多的时间。所以就有了如何在搜索结果中屏蔽无价值网站的想法。
我与梦想有个约会
2020/01/06
5.7K0
从 Google 搜索结果中屏蔽无价值网址
使用Google CDN服务提供的jQuery库
jQuery,让我们控制页面元素更加方便快捷,让我们在编写js的时候不需要过多地考虑浏览器特性问题了。但是jQuery功能越强大,它本身的文件也越大。在做网站优化的时候,通常会通过优化js、css和图片文件能挤出来的几百k尺寸的下载量. Google挺够意思,就提供了jQuery库,通过使用Google提供的jQuery库,Google的服务器和线路品质那自然是不在话下的。即提高了下载速度又减少了自己服务器的并发连接数。 用起来也很简单,直接在网页里引用Google服务器上的相关js文件就可以了。不过,如果
张善友
2018/01/19
1.4K0
Jquery 使用getJSON 获取json数据
1.先引用jq获取下载到本地 CDN地址:https://code.jquery.com/jquery-latest.js
Alone88
2019/10/22
3.6K0
使用Scrapy框架爬取Google搜索结果
为了提高爬虫效率,可以使用多线程或异步IO的方式来处理请求和响应。在Scrapy中,可以使用concurrent_requests参数来设置并发请求数。例如,将并发请求数设置为10:
Paulette
2023/07/08
7430
使用jquery获取url及url参数的方法
使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作
Jensen_97
2023/07/19
1.6K0
获取任务的执行结果
之前的两篇文章中,我们介绍了异步编程,也介绍了线程池的基本概念。也说了,线程池的实现天生也实现了异步任务,允许直接向线程池中进行任务的提交与结果获取。
Single
2019/05/25
1.5K0
jquery获取scrollHeight
滚动下拉加载思路:判断当前滚动条的位置是否到达距离 scrollHeight 滚动高度的某个位置,注意滚动条位置到底后,加上可视区域高度,才等于 scrollHeight 高度。
全栈程序员站长
2022/09/15
1.7K0
.NET ValueTuple使用WhenAll获取多个任务结果
在.NET中,我们可以通过Task.WhenAll用来等待多个任务。任务完成之后,我们可以使用await等待他们来获取结果。
HueiFeng
2020/05/27
8790
关于jQuery的浅谈学习
1.  基础语法: $(selector).action() 语法知识 对于刚开始学习的人,看不懂,可以看www.runoob.com/jquery/jquery-selectors.html有具体
honey缘木鱼
2018/06/13
4420
多线程获取结果还在使用Future轮询获取结果吗?CompletionService快来了解下吧。
二胖上次写完参数校验(《二胖写参数校验的坎坷之路》)之后,领导一直不给他安排其他开发任务,就一直让他看看代码熟悉业务。二胖每天上班除了偶尔跟坐在隔壁的前端小姐姐聊聊天,就是看看这写枯燥无味的业务代码,无聊的一匹。虽然二胖已是久经职场的老油条了,但是看到同事们的周报都写的满满的,而自己的周报,就一两行,熟悉了什么功能。心里还是慌得一匹,毕竟公司不养闲人啊。于是乎二胖终于鼓起勇气为了向领导表明自己的上进心,主动向领导要开发任务。领导一看这小伙子这么有上进心,于是就到任务看板里面挑了一个业务逻辑比较简单的任务分配给了二胖。二胖拿到这个任务屁颠屁颠的回到座位。任务比较简单,就是通过爬虫去爬取某些卖机票(某猪、某携、某团等)的网站的一些机票,然后保存到数据库。
java金融
2020/07/08
1.4K0
多线程获取结果还在使用Future轮询获取结果吗?CompletionService快来了解下吧。
关于社交信息的价值思考
一般的移动社交网络可以认为是由人和内容组成的一个双模网络,在添加位置信息,或者对内容的类型进行细分之后,可以演变成多模复杂网络。信息内容在社交网络中具有相当重要的地位,因为从本质上讲,社交的目的应该是信息的交换。信息、观念和看法的改变是相对较快的,信息内容和社交结构最终构成一个双重反馈回路,社交结构影响信息扩散,而信息则影响社会结构的变化。
半吊子全栈工匠
2018/08/22
2930
关于社交信息的价值思考
jquery获取元素绑定的事件
一个简单的记录,在调试jquery的事件绑定时会用到。查看某元素是否绑定上了事件。
the5fire
2019/02/28
4.3K0
jquery.validate清除表单的验证结果
查阅官方文档之后,观察validate的返回类型,可以发现validate 方法返回一个 Validator 对象。
别团等shy哥发育
2023/02/25
1.4K0
jquery.validate清除表单的验证结果
python获取PING结果
      通过subprocess.Popen调用系统的ping.exe,获得ping结果文本,再通过正则表达式从结果文本中提取需要的参数。需要考虑中文和英文两种返回结果。
py3study
2020/01/09
2.8K0
Google 关于 Go 2 的讨论
在本周召开的GopherCon 2017上,Google Go的技术负责人Russ Cox做了关于Go的未来的主旨演讲,请社区就该语言的下一个主要版本应该包含哪些内容提出建议。Google在十年前开始发展Go语言,在5年前提供了第一个稳定版本1.0。目前的稳定版本是1.8.3,Google正在向社区开放,听取下一个主要版本2.0应该包括哪些内容。 最近的一项研究评估,Go语言的开发者数量约为50万。如果就编程语言向所有这些开发人员询问他们想要什么,那么很可能得到一个很长的期望功能列表。但Google非常关心维护与现有Go代码库的兼容性,该代码库大致近似于1B LoC。虽然这表明该语言的成功,但是按照Cox的说法,它也是“Go 2的主要制约因素”。 Go 1承诺兼容性,让开发人员放心,只要Go 1规范还存在,他们的程序将可以继续编译并正确运行。现在,要设计的Go 2规范,存在破坏与1.x兼容的可能性。Cox认为需要谨慎选择新特性。
Debian中国
2018/12/27
4090
关于 jQuery delegate , undelegate
转载于:https://www.cnblogs.com/twoer/archive/2012/09/26/2704335.html
全栈程序员站长
2022/11/10
2700
最新jQuery引用google地址外部文件(jquery 1.2.6至jquery1.7.2)
鉴于google不能打开,推荐使用bootsprap的CDN jquery:http://www.bootcdn.cn/jquery/ bootsprap:http://www.bootcdn.cn/bootstrap/ 其他:http://www.bootcdn.cn/ ps:CDN默认没有http: 开头,没有服务器的需要加上,不然找不到路径。 //--------------------------------------------------- 以下内容需要 google 可以打开 -------
deepcc
2018/05/16
1.3K0
浅谈关于Google Adsense的申请
Google AdSense 是一种获取收入的快速简便的方法,通过在网站的内容网页上展示相关性较高的 Google 广告
Xcnte
2021/12/14
1.3K0
关于Google的几则新闻
1.Google从微软和sun挖到多名高手 欲开发浏览器  (2004.09.22)   来自:TOM科技 刚刚上市后的Google如今又将目光转移到浏览器市场,几周以来,Google一直为推出自己的网络浏览器而马不停蹄地忙碌着。
数据和云01
2018/09/12
4010
jQuery的使用
1.需求分析 在首页中(logo的上方)显示一个广告图片(页面加载后,间隔3秒弹出广告图片,再间隔3秒后隐藏广告图片)。【使用jQuery实现】
用户5927264
2019/07/31
8.3K0

相似问题

Google App Engine - IP地址列表?

62

Google App Engine服务器IP地址

10

Google App Engine支付网关动态IP地址要求

10

Cloudflare使用Google App engine保留原始IP地址

33

获取Google App engine项目的公共Ip地址

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档