Você está na página 1de 3

1.

Convert varchar to n varchar:


cast(wfp.campaignId as varchar(30)) in (select c._id from CDS.castatistics.cam
paign c where c._id in (@campaignId))
2. (convert(decimal(38,20),isnull(((bs.store_groups_polygon.MakeValid()).STUnion
(bs.zip_groups_polygon.MakeValid()).MakeValid()).STArea(),0))*1.00/(1000*1000)/9
857306) DeutschlandSize
3. Using Temp Tables: faster than with clause:
-- Getting the installs data and putting it into a temp table
IF OBJECT_ID('TEMPDb..#AppInstalls') IS NOT NULL DROP TABLE #AppInstalls
SELECT
CAST(afp_dateCreated AS DATE) AS InstallDate
,COUNT(id) AS AppInstalls
INTO #AppInstalls
FROM
Analytics.Mobile.Install
WHERE
CAST(afp_dateCreated AS DATE) BETWEEN '2015-01-01' AND DATEADD(DD,-1,CAST(GETDAT
E() AS DATE))
GROUP BY
CAST(afp_dateCreated AS DATE)
--Getting the click data and putting into a temp table
IF OBJECT_ID('TEMPDb..#BrochureViews') IS NOT NULL DROP TABLE #BrochureViews
SELECT
CAST(date_created AS DATE) AS ViewDate
,COUNT(id) AS views
INTO #BrochureViews
FROM
CDS.tracking_2011.brochure_click
WHERE
CAST(date_created AS DATE) BETWEEN '2015-01-01' AND DATEADD(DD,-1,CAST(GETDATE()
AS DATE))
GROUP BY
CAST(date_created AS DATE)
--Getting the AB Testing data and puting it into a temp table
IF OBJECT_ID('TEMPDb..#AbTests') IS NOT NULL DROP TABLE #AbTests
SELECT
CAST(dateCreated AS DATE) AS AbTestingDate
,COUNT(_id) AS ABTests
INTO #AbTests
FROM
CDS.castatistics.ABTesting

WHERE
CAST(dateCreated AS DATE) BETWEEN '2015-01-01' AND DATEADD(DD,-1,CAST(GETDATE()
AS DATE))
GROUP BY
CAST(dateCreated AS DATE)
--Getting App Starts data and puting it into temp table
IF OBJECT_ID('TEMPDb..#Appstarts') IS NOT NULL DROP TABLE #Appstarts
SELECT
CAST(dateCreated AS DATE) AS AppStartDate
,COUNT(_id) As AppStarts
INTO #Appstarts
FROM CDS.castatistics.Startapp
WHERE
CAST(dateCreated AS DATE) BETWEEN '2015-01-01' AND DATEADD(DD,-1,CAST(GETDATE()
AS DATE))
GROUP BY
CAST(dateCreated AS DATE)
IF OBJECT_ID('TEMPDb..#BASE') IS NOT NULL DROP TABLE #BASE
SELECT
InstallDate AS Daydate
into #BASE
FROM
#AppInstalls
UNION
SELECT
ViewDate
FROM
#BrochureViews
UNION
SELECT
AbTestingDate
FROM
#AbTests
UNION
SELECT
AppStartDate
FROM
#Appstarts
SELECT
LEFT(CONVERT(varchar, b.DayDate,112),6) AS YearMonth
,SUM(ai.AppInstalls) AS AppInstalls
,SUM(bv.views) AS views
,SUM(ap.AppStarts) AS AppStarts
,SUm(ab.ABTests) AS ABTests
FROM
#BASE b
INNER JOIN #AppInstalls ai ON b.Daydate = ai.InstallDate

INNER JOIN #BrochureViews bv ON b.Daydate = bv.ViewDate


INNER JOIN #Appstarts ap ON b.Daydate = ap.AppStartDate
INNER JOIN #AbTests ab ON b.DayDate = ab.AbTestingDate
GROUP BY
LEFT(CONVERT(varchar, b.DayDate,112),6)
IF
IF
IF
IF
IF

OBJECT_ID('TEMPDb..#AppInstalls') IS NOT NULL DROP TABLE #AppInstalls


OBJECT_ID('TEMPDb..#BrochureViews') IS NOT NULL DROP TABLE #BrochureViews
OBJECT_ID('TEMPDb..#AbTests') IS NOT NULL DROP TABLE #AbTests
OBJECT_ID('TEMPDb..#Appstarts') IS NOT NULL DROP TABLE #Appstarts
OBJECT_ID('TEMPDb..#BASE') IS NOT NULL DROP TABLE #BASE

Você também pode gostar