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
Post a Comment