2

次のようなデータのテーブルがあります。

detectDate      |isp    |infection  | count
--------------------------------------
2012-10-02 01:00|aaaa   |malware    |3
2012-10-02 01:30|bbbb   |malware    |2
2012-10-02 01:33|bbbb   |spy-eye    |2
2012-10-02 01:45|aaaa   |DDos       |1
2012-10-03 01:50|cccc   |malware    |2
2012-10-03 02:00|dddd   |TDSS       |2
2012-10-03 04:50|dddd   |TDSS       |3

日付と感染によってグループ化された、このような出力を取得する必要があります。

detectDate      |infection  | count
--------------------------------------
2012-10-02      |malware    |5
2012-10-02      |spy-eye    |2
2012-10-02      |DDos       |1
2012-10-03      |malware    |2
2012-10-03      |TDSS       |5

私は一般的にグループを使用する方法を知っていますが、彼の遠いところは知りません:(日付と感染によってグループ化し、示されているようにカウントフィールドの合計を取得する必要があるのを助けてください。

4

3 に答える 3

3

関数を使用して列SUMを合計し、関数を使用して日付のみでグループ化します。countDATE_FORMAT

SELECT DATE_FORMAT(detectDate, '%Y-%m-%d') AS detectDate
      ,infection 
      ,SUM(`COUNT`) as `count`
FROM myTable
GROUP BY DATE_FORMAT(detectDate, '%Y-%m-%d'), infection

このSQLFiddleを参照してください

于 2012-10-31T05:13:53.417 に答える
1

DATE mySql関数を使用して、日付/時刻列から日付部分を抽出する必要があります。

select DATE(detectDate),infection, sum(count) 
from t group by DATE(detectDate),infection
order by  DATE(detectDate);
于 2012-10-31T05:18:28.913 に答える
-1
select detectDate, infection, sum(count) as count
from table_name
group by detectDate, infection
于 2012-10-31T05:15:06.000 に答える