0

いくつかの場所の訪問情報と時間、およびこの場所に関するいくつかのコメントを記録したテーブルがあります。

+---------+---------+------------+-----------------------+---------------------+
| visitId | userId  | locationId | comments              | time                |
+---------+---------+------------+-----------------------+---------------------+
|       1 |    3    |     12     | It's a good day here! | 2012-12-12 20:50:12 |
+---------+---------+------------+-----------------------+---------------------+

私がやろうとしているのは、訪問グループの量を時間単位で数えることです。次のような結果を生成したいと思います。

+------------+-----+-----+-----+-----+-----+-----+-------+------+
| locationId |  0  |  1  |  2  |  3  |  4  |  5  |  ...  |  23  |
+------------+-----+-----+-----+-----+-----+-----+-------+------+
|      12    |  15 |  12 |  34 |  67 |  78 |  89 |  ...  |  34  | 
+------------+-----+-----+-----+-----+-----+-----+-------+------+

どうやってやるの?1 日の訪問数の分散を評価したいと考えています。

4

3 に答える 3

1

以下のようなクエリを使用してみてください。

SELECT  location_id, sum(case when HOUR(time) = 0 then 1 else 0) as '0', 
        sum(case when HOUR(time) = 1 then 1 else 0) as '1',-- till 23
FROM table
GROUP BY location_id
于 2013-03-20T12:46:02.687 に答える
1

これにより、場所 ID ごとに 1 時間ごとの訪問数がわかります

SELECT locationId, HOUR(time), COUNT(*)
FROM table
GROUP BY locationId, HOUR(time)
于 2013-03-20T12:39:05.803 に答える
1

テストしなくても、これはうまくいくと思います:

select locationid, hour(time) as hour, count(distinct userid) as usercnt
from table_1
group by locationid, hour;

あなたが提案したように転置されませんが、データは同じです

于 2013-03-20T12:42:34.193 に答える