1

私はこのようなmysqlクエリからのテーブルトランザクションを持っています。

 ____________________________________________________________
 | id | noskom      | nonpbm     |    noskop   |    npbp     |
 |____|_____________|____________|_____________|_____________|
 |  1 | 001         |   10       |       20    |       20    |
 |  2 | 001         |   20       |       10    |       20    |
 |  3 | 002         |    5       |       10    |       20    |
 |  4 | 003         |   30       |        5    |       20    |
 |____|_____________|____________|_____________|_____________|

そして私は結果が欲しい

 select sum(nonpbm),sum(noskop),sum(npbp) from transaction group by noskom

 ____________________________________________________________
 | id | noskom      | nonpbm     |    noskop   |    npbp     |
 |____|_____________|____________|_____________|_____________|
 |  1 | 001         |   30       |       30    |       40    |
 |  2 |             |            |             |             |
 |  3 | 002         |    5       |       10    |       20    |
 |  4 | 003         |   30       |        5    |       20    |
 |____|_____________|____________|_____________|_____________|

mysqlクエリとは何ですか

4

3 に答える 3

2
SELECT 
    noskom , 
    SUM(nonpbm) as nonpbm , 
    sum(noskop) as noskop , 
    sum(npbp) as  npbp
FROM mytable 
GROUP BY noskom 

集計値に寄与したすべての行のIDを一覧表示する場合は、次の列を追加することもできます。

GROUP_CONCAT(id ORDER BY id) AS id

これにより、IDのコンマ区切りリストが表示されます。EOLのような別の区切り文字を指定できます。

GROUP_CONCAT(id ORDER BY id SEPARATOR '\r\n') AS id

'\r\n'Windowsの世界では標準の行区切り文字です。'\n'ちょうど、または'\r'別のプラットフォームを使用している場合に変更します。

于 2012-12-20T07:59:49.333 に答える
1
select transaction.id,t.noskom,t.sum_nonpbm,t.sum_noskop,t.sum_npbp
from transaction
left join 
(
   select noskom, min(id) min_id, 
               sum(nonpbm) sum_nonpbm,
               sum(noskop) sum_noskop,
               sum(npbp) sum_npbp 
   from transaction 
   group by noskom
) t on (transaction.id=t.min_id)
order by transaction.id
于 2012-12-20T08:23:57.660 に答える
1

このクエリを試してください::

select tbl2.id,tbl1.noskom,tbl1.sum1,tbl1.sum2,tbl1.sum3 from
(select id,noskom,sum(nonpbm) sum1,sum(noskop) sum2,sum(npbp) sum3 from tbl group by noskom) tbl1
 right join
(select id,null a,null b,null c,null d
from tbl) tbl2
on tbl1.id = tbl2.id
order by 1 ;
于 2012-12-20T08:42:23.180 に答える