php 数据透视表,数据透视表PHP / MySQL

什么是在php / MySQL中处理数据透视表的最佳方法(或者那种效果)

我有一个返回信息的查询,如下所示

id eng week type sourceid userid

95304 AD 2012-01-02 Technical 744180 271332

95308 AD 2012-01-02 Non-Technical 744180 280198

96492 AD 2012-01-23 Non-Technical 1056672 283843

97998 AD 2012-01-09 Technical 1056672 284264

99608 AD 2012-01-16 Technical 1056672 283842

99680 AD 2012-01-02 Technical 1056672 284264

100781 AD 2012-01-23 Non-Technical 744180 280671

我想在PHP中构建一个报告,该报告按周开始的列标题组进行计数.例如.

week commencing: 2012-01-02 2012-01-09 2012-01-16 2012-01-23 2012-01-30

Total: 3 1 1 1 0

Technical: 2 1 1 0 0

Non-Technical: 1 0 0 1 0

但我不确定从哪里开始,因为标题是动态的,具体取决于报告将在哪个月运行.

我知道如何传递月份的详细信息并检索PHP中的所有数据,但它当前在一列中输出,而不是能够将其分组并将其放入数组中.

任何帮助赞赏!

解决方法:

您可以使用子查询执行此操作,然后生成和聚合此数据.尝试一下这样的事情:

select week,

count(*) as total,

sum(technical) as technical,

sum(non_technical) as non_technical)

from(

select week,

case(type) when 'Technical' then 1 else 0 END as technical,

case(type) when 'Non-Technical' then 1 else 0 END as non_technical

) as data

GROUP BY week

标签:php,mysql,pivot-table

来源: https://codeday.me/bug/20190927/1822542.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值