mysql - sql查询数据格式

标签 mysql sql

这是我的数据查询:

select 
    ('moviestimeidea') as 'circle',
    count(distinct msisdn),
    vendor,
    hour(proess_datetime) 
from 
    campaing_info 
where 
    date(proess_datetime) = curdate() 
    and length(msisdn) > 4 
group by 
    vendor,
    hour(proess_datetime) 
order by 
    hour(proess_datetime);

返回结果:

circle            count(distinct ani)    vendor    hour(date_time) 
------------------------------------------------------------------
xyz               1                      default   0
xyx               5                      a         0
xyx               5                      b         1
xyx               27                     c         1
xyx               5                      a         3
xyx               54                     b         3
xyx               57                     c         4
xyx               5                      d         5

但我想要这个结果:

 circle            vendors            hour(date_time) 
 ----------------------------------------------------
 -            default a   b c d          -
xyx               1   -   - - -          0
xyx               -   5   - - -          0
xyx               -   -   5 - -          1
xyx               -   -   - - -          1
xyx               -  54   - - -          3
xyx               -   -  54 - -          3
xyx               -   -   - - -          4
xyx               -   -   - - -          5

喜欢 c 和 d 供应商的数据,请帮忙

最佳答案

select
    hour(date_add(tbl.date_time,interval 335 minute)) as 'hour'
    ,count(distinct tbl1.ani) as 'XYZ' 
    ,count(distinct tbl2.ani) as 'ASDF' 
    ,count(distinct tbl3.ani) as 'FGH'
    ,count(distinct tbl4.ani) as 'HJK'
    ,count(distinct tbl5.ani) as 'KLO'
    from TABLE NAME tbl
    left outer join TABLE NAME tbl1 on tbl.id=tbl1.id  and tbl1.vendor='XYZ'
    left outer join TABLE NAME tbl2 on tbl.id=tbl2.id  and tbl2.vendor='ASDF'
    left outer join TABLE NAMEl tbl3 on tbl.id=tbl3.id  and tbl3.vendor='FGH'
    left outer join TABLE NAME tbl4 on tbl.id=tbl4.id  and tbl4.vendor='HJK'
    left outer join TABLE NAME tbl5 on tbl.id=tbl5.id  and tbl5.vendor='KLO'
    Where date(tbl.date_time)=date(date_add(now(),interval 335 minute)) group by hour(date_add(tbl.date_time,interval 335 minute));

关于mysql - sql查询数据格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45988982/

相关文章:

php - 如何计算属于另一列中不同值的列中的所有相同值

mysql - MySQL 中的 SmallInt 与 Date - 性能、灵活性和大小

SQL Select 排除某些状态的记录

c# - LINQ 到 SQL : Delete entity (by ID) with one query

mysql - 有没有办法将列添加到 mysql 中的现有 View 中?

php - 将 MySQL 查询作为多维数组返回

MySQL - 仅从 varchar 列中选择数值

mysql - 根据第一个 SQL select 语句的结果进行选择

MySQL检查字段中是否有数字

php - CAKEPHP 条件或声明