select
screenname,
count(*) as Total_SignIns
,count(distinct(startdate)) as Uniq_Days_Signin
, ROUND(CONVERT(DECIMAL(4,2), count(*))/CONVERT(DECIMAL(4,2), count(distinct(startdate))), 2) AS AverageDaySingIn
from (
select distinct(id), x.screenname, startdate, cast(startdate+' '+starttime as datetime) as startdatetime, x.boxadollar
from sitelive.dbo.exsignin x (nolock)
inner join (
select distinct(SenderScreennameSimple), ReceiverScreennameSimple, convert(char(8),dateentered,1) as Poke_date
,(select top 1 Dateentered from Temp.dbo.poketemp
where n.ReceiverScreennameSimple = ReceiverScreennameSimple and n.SenderScreennameSimple = SenderScreennameSimple and convert(char(8),n.dateentered,1) = convert(char(8),dateentered,1)
Order by DateEntered) as Poke
,(select top 1 Dateentered from Temp.dbo.poketemp
where n.ReceiverScreennameSimple = ReceiverScreennameSimple and n.SenderScreennameSimple = SenderScreennameSimple and convert(char(8),n.dateentered,1) = convert(char(8),dateentered,1)
Order by DateEntered desc) as Poke_Lst
,count(*) as Poke_Count
from Temp.dbo.poketemp n
Group by SenderScreennameSimple, ReceiverScreennameSimple, convert(char(8),dateentered,1)
having count(*) = 1
) t1 on t1.SenderScreennameSimple = x.screenname
where datediff(minute,Poke,cast(startdate+' '+starttime as datetime) ) Between 0 and 60 and LiveOrRecorded = 'L'
) t2
Group by
screenname
上記は、結果セットに使用しているサンプルクエリです。
AverageDaySignIn
1.0000000
1.0000000
1.0000000
1.0000000
1.0000000
2.4500000
2.0000000
1.6700000
1.0000000
1.3300000... and so on
私も試しました:
, ROUND(CONVERT(DECIMAL(3,2), count(*))/CONVERT(DECIMAL(3,2), count(distinct(startdate))), 2) AS AverageDaySingIn
次のエラーが表示されます。
Arithmetic overflow error converting int to data type numeric.
私は何を間違っていますか?初心者で申し訳ありませんが、どんな助けでも大歓迎です。前もって感謝します。