MySQLで2つの行を集中しますが、列名を保ちます

トーマス・マシーゼン:

MySQLの(V。5.1)ドメインのデシベルとFacebookの株式の数。

tblFacebook

+------------+--------+----------+
| day        | shares | domainid |
+------------+--------+----------+
| 1571011200 |    441 |        1 |
| 1571097600 |    443 |        1 |
| 1571184000 |    474 |        1 |
| 1571270400 |    518 |        1 |
| 1571184000 |    849 |        3 |
| 1571270400 |    849 |        3 |
+------------+--------+----------+

私は、次のような出力を見てみたいと思います:

+------------+------------------+------------------+
| day        | domainid1-shares | domainid3-shares |
+------------+------------------+------------------+
| 1571011200 |    441          |                  |
| 1571097600 |    443          |                  |
| 1571184000 |    474          |  849             |
| 1571270400 |    518          |  849             |
+------------+-----------------+------------------+

どうやって?

私はこれを試してみましたが、それは私に二つの別々の列(domainid1-株式およびdomainid3-株)を得ませんでしたか?

SELECT day, GROUP_CONCAT(shares SEPARATOR ', ') FROM tblFacebook GROUP BY day;
GMB:

あなたは条件付き凝集にピボットを行うことができます。

select 
    day,
    max(case when domainid = 1 then shares end) domainid1_shares,
    max(case when domainid = 3 then shares end) domainid3_shares
from mytable t
group by day

DBフィドルのデモ

       日| domainid1_shares | domainid3_shares 
---------:| ---------------:| ---------------:
1571011200 | 441 |             ヌル 
1571097600 | 443 |             ヌル 
1571184000 | 474 | 849 
1571270400 | 518 | 849

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=372695&siteId=1