Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.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 SQL-将列值更改为行值_Mysql_Sql - Fatal编程技术网

Mysql SQL-将列值更改为行值

Mysql SQL-将列值更改为行值,mysql,sql,Mysql,Sql,我使用SQL Mysql。如何将列值更改为行值? 我的问题是: select sum(if (tr = 1,1,0)) as 1x, sum(if (tr = 2,1,0)) as 2x, sum(if (tr = 3,1,0)) as 3x, sum(if (tr = 4,1,0)) as 4x, sum(if (tr = 5,1,0)) as 5x, from (select user_id, count(subsorder_id) as tr from subs_

我使用SQL Mysql。如何将列值更改为行值? 我的问题是:

 select sum(if (tr = 1,1,0)) as 1x,
 sum(if (tr = 2,1,0)) as 2x,
 sum(if (tr = 3,1,0)) as 3x,
 sum(if (tr = 4,1,0)) as 4x,
 sum(if (tr = 5,1,0)) as 5x,
 from
 (select user_id,
   count(subsorder_id) as tr
   from subs_order
   where subsorder_status = 'paid'
   group by user_id)tab
结果如下:

预期结果:

总水平


您当前的尝试是旋转结果;但您可以避免这种情况,只需使用字符串函数确定您的自定义标题,并根据以下内容分组:

选择 混凝土,'x'作为标高, 将*计为总数 从…起 选择用户id, countsuborder\u id作为tr 从subs_顺序 其中子订单状态=‘已支付’ 按用户分组\u id选项卡 逐级分组
可能重复的,而不是向我们显示您的数据在尝试后的样子,从而给出错误的结果,而是向我们显示您的数据最初的样子。“当你告诉我们你在C,而不告诉我们A在哪里时,我们很难告诉你如何从A-B获得数据。虽然这可能是问题的重复,但我怀疑OP是否真的需要转换他们的数据,@AleksG;它之所以被旋转,首先是因为它们的条件聚合。很可能这只需要在GROUP BY中增加一列和一个SUMexpression。@Larnu我只是通过OP显示他得到了什么和他想要什么-这是一个简单的换位。我同意,我们需要更多的信息。
 1x    2x   3x    4x   5x   
 150  100   75    50   25  
 1x     150
 2x     100
 3x     75
 4x     50
 5x     25