2

私は次のSQLFiddleを持っています。時間、数、名前で結果をグループ化できますが、同じ行内の error_strings も返したいです。

助言がありますか?グループ連結は、私が必要としていたことを実際に行いませんでした。

出力を次のようにしたいと思います。

NAME | TIME | TODAYSCOUNT  | ERRORS
------------------------------------
A     1111           2000  error1,erro2
B     1111             20  error1,erro2
C     1111             10  error1,erro2
D     1111              3  error1,erro2
4

2 に答える 2

3

以下はどうですか: -

http://sqlfiddle.com/#!2/4c5e4/20

SELECT name,time,count(*) as todaycount, group_concat(error_str) as errors  
FROM test 
GROUP BY Name,time

あなたはに変更することができます

group_concat(distinct error_str)

個別のエラー文字列用。

于 2012-06-28T02:06:29.927 に答える
1

これを見てください:

http://sqlfiddle.com/#!2/d6929/2

ここまで進む可能性があるように見えたので、私はそれを一歩進めました。

SELECT Name, FROM_UNIXTIME('%m-%d-%Y', SUM(TodaysDate)),FROM_UNIXTIME('%m-%d-%Y',SUM(YesterdaysDate)), sum(TodaysCount),Sum(YesterdaysCount),CONCAT(String),CONCAT(String2)
FROM (
    SELECT Name,Time as TodaysDate,0 as YesterdaysDate,COUNT(*) as TodaysCount, 0 as YesterdaysCount,GROUP_CONCAT(error_str) as String, '' as String2
    FROM Test
    WHERE Time = 3111
    GROUP BY Name
  UNION ALL
    SELECT Name,0 as TodaysDate,Time as YesterdaysDate,0 as TodaysCount, COUNT(*)  as YesterdaysCount, '' as String, GROUP_CONCAT(error_str) as String2
    FROM Test
    WHERE Time = 1111
    GROUP BY Name
  ) as t
GROUP BY Name

上記の使用されたユニオン

于 2012-06-28T01:57:03.203 に答える