私はテーブルを持っています:
idint(11) NOT NULL
type varchar(64) NOT NULL
created_on datetime NOT NULL
doctrine2 を使用する場合、1 つのクエリですべてのタイプのデバイス (iSO、Android...) を週単位で数えることはできますか?
出力例:
Week iOS Android Other
1 4 5 6
2 3 5 9
私はテーブルを持っています:
idint(11) NOT NULL
type varchar(64) NOT NULL
created_on datetime NOT NULL
doctrine2 を使用する場合、1 つのクエリですべてのタイプのデバイス (iSO、Android...) を週単位で数えることはできますか?
出力例:
Week iOS Android Other
1 4 5 6
2 3 5 9
これは完全に可能です.1年を通して週間隔でいくつかの列の出力合計に詳述されている方法と同様の方法を使用すると、週の日付は日と一致しますが、説明した出力では簡単ではありません. これを処理する最善の方法は、SELECT を実行し、WEEK と TYPE でグループ化することです。いえ
SELECT
-- Get the week and month of each row
YEAR(created_on) AS Year,
WEEK(created_on) AS Week,
type
-- Count how many rows are in this group
COUNT(*) AS frequency
FROM yourTable AS yt
-- Order by month and then week, so that week 4 in Jan comes before week 4 in Feb
GROUP BY
Year ASC,
Week ASC,
type ASC
これにより、次のような出力が得られます
Year Week Type frequency
2013 1 'iOS' 4
2013 1 'Android' 5
2013 1 'Other' 6
2013 2 'iOS' 3
2013 2 'Android' 5
2013 2 'Other' 9