Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL重排查询结构_Mysql - Fatal编程技术网

MySQL重排查询结构

MySQL重排查询结构,mysql,Mysql,我试图根据我在dbForge Studio中构建的查询显示一个图表,但它没有正确地绘制图表,因为我认为它只选择了一个数据轴 查询显示的结果如下所示: column1 column2 column3 data data data 我想要正确显示图表,我需要它的格式如下: Type Total column1 data column2 data column3 data (SELECT 'Type', 'Total' FROM DUAL) UNI

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

查询显示的结果如下所示:

column1  column2  column3
data      data     data
我想要正确显示图表,我需要它的格式如下:

Type      Total
column1    data
column2    data
column3    data
(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 )
下面是查询。如何添加这样的虚拟列并重新排列

    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'

首先,如果需要一组2列N行的数据,那么查询在SELECT之后应该有两个参数。如果您需要将向上SQL的结果放入图表中,您应该使用UNION或UNION ALL read获取更多信息,如:

Type      Total
column1    data
column2    data
column3    data
(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 )
但从我看到的情况来看,你可以使用下面的方法来获得类似的结果,即具有两种状态之一的应用程序的计数、待办事项和所有应用程序的总和。下面的代码假设表中每个应用程序状态只有一个条目:

(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)

首先,如果需要一组2列N行的数据,那么查询在SELECT之后应该有两个参数。如果您需要将向上SQL的结果放入图表中,您应该使用UNION或UNION ALL read获取更多信息,如:

Type      Total
column1    data
column2    data
column3    data
(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 )
但从我看到的情况来看,你可以使用下面的方法来获得类似的结果,即具有两种状态之一的应用程序的计数、待办事项和所有应用程序的总和。下面的代码假设表中每个应用程序状态只有一个条目:

(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)

我确实做了一些修改,因为我不喜欢其中一个状态的措辞,所以我改为:选择“路由”作为“类型”,将T1.APP_UID作为“总计”从表1 T1中计算出来,其中T1.APP_STATUS='Completed'GROUP BY T1.APP_STATUS我确实对其进行了一些修改,因为我不喜欢其中一种状态的措辞,所以我改为:选择'Routed'作为'Type',将T1.APP\u UID从表1 T1中计数为“总计”,其中T1.APP\u状态=按T1.APP\u状态“完成”分组