2012-05-10 11 views
0
SELECT DISTINCT property1, property2, SUM(property3) FROM t GROUP BY property1; 

これはcolumn1でグループ化された各グループのcolumn2のすべての異なる値を収集する方法は?

p11 p211 sum(p311, p312, ...) 
p12 p221 sum(p321, p322, ...) 

を与えるしかし、私は

p11 (p211, p212, ...) sum(p311, p312, ...) 
p12 (p221, p222, ...) sum(p321, p322, ...) 

をしたいか、何かが同等の情報が含まれています。どうやってするか?私は同等の他のRDBMSの中にあるかわからない

SELECT property1, GROUP_CONCAT(property2), SUM(property3) FROM t GROUP BY property1; 

+0

これをOracleでも実行できますか? – qazwsx

答えて

1

MySQLが何をしたい正確に行いGROUP_CONCAT機能を提供します。

+0

「GROUP_CONCAT」はある時点で切り捨てられているように見えます。つまり、グループに一定数以上の行があり、結果の列値の長さがある閾値を超えた場合、残りは削除されます。それについてのアイデア? – qazwsx

+0

[docs](http://dev.mysql.com/doc/refman/5.0/ja/group-by-functions.html#function_group-concat)から: "実行時にgroup_concat_max_lenの値を変更する構文は次のとおりです。ここで、valは符号なし整数です。 " ' SET [GLOBAL | SESSION] group_concat_max_len = val; ' – gcbenison

+0

このvalはどのくらいの大きさですか? – qazwsx

関連する問題