Calculating (dividing) two summed fields in SQL Query -


i have query:

select fmum.dimsubscriptionkey, sum(fmum.totalunits) totalunits, sum(fmum.ai_normalizedusage) ai_normalizedusage   [ai_datamart].[azureviews].[v_factmeteredusagemonthly] fmum join [ai_datamart].[azureviews].[v_dimserviceextended] se on(fmum.dimservicekey = se.dimservicekey) join [ai_datamart].[azureviews].[v_dimaccount] on(fmum.dimaccountkey = a.dimaccountkey) join [ai_datamart].[azureviews].[v_dimsubscription] su on(fmum.dimsubscriptionkey = su.dimsubscriptionkey)   fmum.dimdatekey >= '20150201'and fmum.dimdatekey <= '20150331' , se.workload = 'sqldb' , se.resourcename != 'sql reporting hours' , (su.ai_billingtype = 'ea' or su.ai_billingtype = 'direct')   , su.isfraudidentified = 0 , su.ai_istest = 0 , su.dimbillingsystemkey = 1 , fmum.dimsubscriptionkey = '4707785' group fmum.dimsubscriptionkey 

which returns result:

dimsubscriptionkey totalunits ai_normalizedusage 4707785 24.77043700 21.08775630

what need , can't work 4th column (ai_normaliedusage / totalunits)

but when add query:

select fmum.dimsubscriptionkey, sum(fmum.totalunits) totalunits, sum(fmum.ai_normalizedusage) ai_normalizedusage, (ai_normalizedusage / totalunits)   [ai_datamart].[azureviews].[v_factmeteredusagemonthly] fmum join [ai_datamart].[azureviews].[v_dimserviceextended] se on(fmum.dimservicekey = se.dimservicekey) join [ai_datamart].[azureviews].[v_dimaccount] on(fmum.dimaccountkey = a.dimaccountkey) join [ai_datamart].[azureviews].[v_dimsubscription] su on(fmum.dimsubscriptionkey = su.dimsubscriptionkey)   fmum.dimdatekey >= '20150201'and fmum.dimdatekey <= '20150331' , se.workload = 'sqldb' , se.resourcename != 'sql reporting hours' , (su.ai_billingtype = 'ea' or su.ai_billingtype = 'direct')   , su.isfraudidentified = 0 , su.ai_istest = 0 , su.dimbillingsystemkey = 1 , fmum.dimsubscriptionkey = '4707785' group fmum.dimsubscriptionkey, (ai_normalizedusage / totalunits)  

i not getting expected results:

dimsubscriptionkey  totalunits  ai_normalizedusage  (no column name) 4707785 1.45831000  0.70567620  0.48389999382847268413 4707785 3.39577900  3.28609533  0.96769999755578911348 4707785 9.49984800  9.19300290  0.96769999898945751553 4707785 3.41661200  3.30625543  0.96769999929754973640 4707785 4.49992800  2.17751515  0.48389999795552284392 4707785 2.49996000  2.41921129  0.96769999919998719979 

what want is

dimsubscriptionkey totalunits ai_normalizedusge newcalculatedfield<br> 4707785 24.770437   21.0877563  0.851327585 

what missing? racking brain!

if you're referencing derived columns within same select statement can't refer them alias, need either duplicate calculation, or wrap in select statement.

without knowing underlying tables, fix should work:

select fmum.dimsubscriptionkey, sum(fmum.totalunits) totalunits, sum(fmum.ai_normalizedusage) ai_normalizedusage, sum(fmum.ai_normalizedusage) / sum(fmum.totalunits) newcalculatedfield   [ai_datamart].[azureviews].[v_factmeteredusagemonthly] fmum join [ai_datamart].[azureviews].[v_dimserviceextended] se on(fmum.dimservicekey = se.dimservicekey) join [ai_datamart].[azureviews].[v_dimaccount] on(fmum.dimaccountkey = a.dimaccountkey) join [ai_datamart].[azureviews].[v_dimsubscription] su on(fmum.dimsubscriptionkey = su.dimsubscriptionkey)   fmum.dimdatekey >= '20150201'and fmum.dimdatekey <= '20150331' , se.workload = 'sqldb' , se.resourcename != 'sql reporting hours' , (su.ai_billingtype = 'ea' or su.ai_billingtype = 'direct')   , su.isfraudidentified = 0 , su.ai_istest = 0 , su.dimbillingsystemkey = 1 , fmum.dimsubscriptionkey = '4707785' group fmum.dimsubscriptionkey 

Comments

Popular posts from this blog

java - Spring Data JPA: Why findOne(id) executing delete query internally? -

python - Mongodb How to add addtional information when aggregating? -

java - Incorrect order of records in M-M relationship in hibernate -