首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL重排查询结构

MySQL重排查询结构
EN

Stack Overflow用户
提问于 2013-09-04 22:27:39
回答 2查看 54关注 0票数 1

我试图根据我在dbForge Studio中构建的查询显示一个图表,但它没有正确显示,因为我认为它只选择了一个数据轴。

查询显示的结果如下:

代码语言:javascript
复制
column1  column2  column3
data      data     data

我想要正确地显示图表,我需要这样的格式:

代码语言:javascript
复制
Type      Total
column1    data
column2    data
column3    data

下面的查询如下。如何添加这样的虚拟列并对其进行重新排列?

代码语言:javascript
复制
    SELECT 
      (SELECT COUNT(T1.APP_UID)
       FROM TABLE1 T1 
       WHERE T1.APP_STATUS = 'To_Do' ) AS 'Column1' ,

      (SELECT COUNT(T1.APP_UID)
       FROM TABLE1 T1 
       WHERE T1.APP_STATUS = 'Completed' ) AS 'Column2' ,

      (SELECT COUNT(T1.APP_UID)
       FROM TABLE1 T1 ) AS 'Column3'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-04 22:48:41

首先,如果您需要一个2列N行数据集,那么您的查询应该在"SELECT“之后有两个参数。如果您需要将向上SQLS的结果放入图表中,您应该使用UNION或UNION (更多信息请阅读http://dev.mysql.com/doc/refman/5.0/en/union.html )如下:

代码语言:javascript
复制
(SELECT 'Type', 'Total' FROM DUAL)
UNION [ALL]
(SELECT 'column1', COUNT(T1.APP_UID)
       FROM TABLE1 T1 
       WHERE T1.APP_STATUS = 'To_Do' )
UNION [ALL]
(SELECT 'column2', COUNT(T1.APP_UID)
       FROM TABLE1 T1 
       WHERE T1.APP_STATUS = 'Completed' )
UNION [ALL]
(SELECT 'column3', COUNT(T1.APP_UID)
       FROM TABLE1 T1 )

但据我所见,您可以使用以下方法获得类似的结果(有两个状态之一的应用程序(“已完成的,to_do")和所有应用程序的总和)。下面的代码假设表中每个应用程序状态只有一个条目):

代码语言:javascript
复制
(SELECT T1.APP_STATUS, COUNT(*) FROM TABLE1 T1 WHERE (T1.APP_STATUS = 'To_Do' OR T1.APP_STATUS = 'Completed') GROUP BY T1.APP_STATUS)
UNION ALL
(SELECT 'Altogether', COUNT(T1.APP_UID)
       FROM TABLE1 T1)
票数 1
EN

Stack Overflow用户

发布于 2013-09-04 22:45:10

代码语言:javascript
复制
SELECT SUM(T1.APP_STATUS = 'To_Do') FROM T1
UNION SELECT SUM(T1.APP_STATUS = 'Completed') FROM T1
UNION SELECT COUNT(*) FROM T1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18624845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档