私は自分のWebシステムにエラーを記録します。そこでは、人々はどこからでもログインでき、たとえば、共有しているものをダウンロードできます。家族の写真、ドキュメント++。
やり過ぎのシステムですが、開発者としては楽しいと思います:D
私のエラーテーブルでは、次の構造になっています。DataTime Userid(int)IP(varchar)ErrorMessage(text)
私のpersontableには、次の構造があります。Id(int)Firstname(varchar)Lastname(varchar)
異なるエラーごとにエラーの数を数えたいのですが...同じユーザーが複数のIPを持つことができ、1つのIPが複数のユーザーを持つことができるので、私は間違いを犯していると思います。SQLは次のとおりです。
SELECT TO_CHAR(DateTime, 'DD') DAY,
TO_CHAR(DateTime, 'MM') MONTH,
log.ErrorMessage,
CONCAT(CONCAT(person.lastname, ', '), person.firstname),
log.IP,
count(*) AS "COUNT"
FROM errorlog log
FULL JOIN person person
ON log.Userid = person.Id
WHERE log.DateTime BETWEEN foo
AND foo2
GROUP BY TO_CHAR(DateTime, 'MM'),
TO_CHAR(DateTime, 'DD'),
person.Lastname,
person.Firstname,
log.IP,
log.errormessage
ORDER BY MONTH ASC,
DAY ASC;
私のSQLは、異なるIP上の「離れた」同じ人物をグループ化している可能性があると思います。