1

私は、visitor_id、country、time_of_visit を含む mysql テーブルを持っています。

国ごとの平均滞在時間を取得したい。

期間を取得するために、各訪問者 ID の最も早い訪問時間と最も遅い訪問時間の差を取得します。

したがって、これにより、すべての訪問の平均期間が得られます。

    SELECT AVG(duration)
    FROM 
    (
    SELECT TIMESTAMPDIFF(SECOND, MIN(time_of_visit), MAX(time_of_visit))/60 
as duration 
    FROM tracker 
    GROUP BY visitor_id
    ) as tracker

それはうまくいきます。しかし、国ごとにグループ化するには失敗します。国ごとの平均期間を取得するための私の最近の試みは次のとおりです。

SELECT country, AVG(duration)
FROM 
(
SELECT TIMESTAMPDIFF(SECOND, MIN(time_of_visit), MAX(time_of_visit))/60 
as duration 
FROM tracker 
GROUP BY visitor_id
) as tracker
GROUP BY country

私が得るエラーは次のとおりです。「フィールドリスト」の列「国」が不明です。

これは単純であるべきだと思いますが、私は初心者です。いろいろ調べて、いろいろ考えてみましたが、だめでした。何か助けはありますか?

前もって感謝します。

4

3 に答える 3

0

内側の GROUP BY とフィールド リストに COUNTRY を追加する必要があります。

SELECT country, AVG(duration)
FROM 
(
SELECT TIMESTAMPDIFF(SECOND, MIN(time_of_visit), MAX(time_of_visit))/60 
as duration,country,visitor_id 
FROM tracker 
GROUP BY visitor_id,country
) as tracker
GROUP BY country
于 2013-08-13T08:44:38.293 に答える