1

Sessionクエリに列を追加する方法を見つける必要がありSELECTます。SQL Server 2005 を使用しています。

最初のサンプル データは次のとおりです。

ID    Name      VisitCounter    
1     TOM           1   
2     TOM           2   
3     TOM           3   
4     DICK          1       
5     DICK          2       
6     DICK          3       
7     DICK          4       
8     HARRY         1       
9     HARRY         2       
10    TOM           1   
11    TOM           2   
12    DICK          1       
13    DICK          2       

「セッション」という列を追加し、名前が変更されるたびにインクリメントするクエリを作成する必要がありますvisitcounter = 1

したがって、クエリは次のようになります。

ID    Name      VisitCounter    Session
1     TOM           1               1
2     TOM           2               1
3     TOM           3               1
4     DICK          1               2
5     DICK          2               2
6     DICK          3               2
7     DICK          4               2
8     HARRY         1               3
9     HARRY         2               3
10    TOM           1               4
11    TOM           2               4
12    DICK          1               5
13    DICK          2               5 and so on

これは可能ですか?

4

2 に答える 2

5

サンプルデータでは、セッションは重複していません。それが一般的に当てはまる場合は、以前に開始されたセッションの数を数えることができます。

select  yt.ID
,       yt.Name
,       yt.VisitCounter
,       count(prev.ID) as Session
from    YourTable yt
join    YourTable prev
on      prev.ID <= yt.ID and
        prev.VisitCounter = 1
group by
        yt.ID
,       yt.Name
,       yt.VisitCounter
order by 
        yt.ID

SQLFiddleでの実例。

于 2012-04-30T16:52:24.473 に答える
-1

データベースでのデータの重複は避けたほうがよいでしょう。データベース構造を変更できるかどうかはわかりませんが、変更できる場合は、次の 2 つのテーブルを作成する必要があります。

  • テーブル「users」には、セッション ID とユーザー名 (一意) が含まれています。
  • テーブル「visits」には、訪問 ID とユーザー ID が含まれています。

アクセス数はクエリで取得できます。

于 2012-04-30T16:46:37.613 に答える