これは痛いほど単純なはずですが、私は精神的なブロックがあります。SQL - 範囲の平均年齢を持つユーザーの数を取得
ユーザー:
- ID
- 生年月日(日時)
User_Visits:
- SITE_ID私は、SQL Server 2008のデータベース内に3つのテーブルを持っています
- USER_ID
- Visit_Date
サイト:
- ID
私は間の平均年齢との訪問者を持っているサイトの数を取得するSQL文を必要とします40-50歳と言います。
ありがとうございます!
これは痛いほど単純なはずですが、私は精神的なブロックがあります。SQL - 範囲の平均年齢を持つユーザーの数を取得
ユーザー:
User_Visits:
サイト:
私は間の平均年齢との訪問者を持っているサイトの数を取得するSQL文を必要とします40-50歳と言います。
ありがとうございます!
select count(*) as SiteCount
from (
select avg(datediff(year, U.BirthDate, UV.Visit_Date)) as AvgAge
from Users as U
inner join User_Visits as UV
on U.ID = UV.User_ID
group by UV.Site_ID
) as T
where AvgAge >= 40 and
AvgAge < 50
私が試してみましょう:。これはあなたが興味のあるすべてのサイトを返す
SELECT siteID, AVG(YEAR(GETDATE()) - YEAR(birthdate)) as avg_age,
FROM users_visits JOIN users ON users.ID = users_visits.userID
GROUP BY siteID HAVING avg_age BETWEEN 40 AND 50
だけカウントを取得するには、SELECT
一部でcount(siteID)
を入れてavg_age
の定義を移動する必要がありますHAVING句に追加します。
ありがとうございましたこの1つは魅力的でした! – user1091409