2

私は持っている:

TABLE: USERS
UID | NAME
1   | Bob
2   | John

そして、私が持っています:

TABLE: HITS
HITID | UID
1     | 1
2     | 2
3     | 2
4     | 1
5     | 2
6     | 2

私が欲しい:

UID | HITS
1   | 2
2   | 4

簡単そうに見えますが、私はそれを行うことができないようですか?

4

5 に答える 5

4

これを試して:

SELECT UID, COUNT(UID) HITS FROM HITS 
GROUP BY UID;
于 2012-11-23T06:10:11.547 に答える
2

これはあなたを助けるかもしれません

DECLARE @USERS TABLE(UID INT, NAME VARCHAR(20))
INSERT INTO @USERS (UID,NAME) VALUES ('1','Bob'),('2','John')

DECLARE @HITS TABLE(HITID INT,UID INT)
INSERT INTO @HITS (HITID,UID) VALUES('1','1'),('2','2'),('3','2'),('4','1'),('5','2'),('6','2')

USERSテーブルとHITSテーブルの両方を使用する場合は、JOINを使用します

SELECT U.UID,COUNT(H.HITID) AS HITS FROM @USERS AS U INNER JOIN @HITS AS H ON U.UID = H.UID GROUP BY U.UID

または単純なクエリを使用するHITSテーブルのみを使用する場合

SELECT UID, COUNT(UID) HITS FROM @HITS GROUP BY UID 

これで一時テーブルも作成しました。

于 2012-11-23T06:25:23.423 に答える
1
SELECT b.UID, COUNT(b.UID) HITS FROM HITS a, USERS b
WHERE a.UID=b.UID
GROUP BY UID 

これはうまくいくはずです

于 2012-11-23T06:12:57.790 に答える
1

これはトリックを行うでしょう

SELECT H.UID, COUNT(*) AS 'HITS'
FROM HITS H
GROUP BY H.UID
于 2012-11-23T06:23:14.203 に答える
0

ユーザーの名前が必要な場合は、それに参加する必要があります

SELECT  a.Name, COUNT(*) totalCount
FROM    users a
        INNER JOIN HITS b
            ON a.UID = b.UID
GROUP BY a.UID
于 2012-11-23T06:17:06.460 に答える