J'ai une requête qui retourne les colonnes:Calculer régression linéaire Dans SQL Server
StoreNo
FiscalWeek
SalesVar
Il y a 28 magasins,
et la semaine fiscale est de 25 - 30,
Et les ventes sont la somme de sal es variance pour cette semaine
Je veux contenir cela dans une requête sous qui me donnera une sortie avec:
StoreNo
régression linéaire (basé sur l'historique des ventes de 6 semaines [Connu des Y])
Je normalement le faire dans Excel en utilisant LINEST
Je devine que ce serait ressembler à:
Select
A.StoreNo
A.LinearRegressionCalculation
From (SubQuery) A
La requête que j'utiliser pour obtenir les 6 semaines de l'historique des ventes est la suivante:
SELECT
EU.[Store No] As 'StoreNo'
,SA.FISCALWEEK As 'FiscalWeek'
,CONVERT(DECIMAL(5,4),
( SUM(CASE WHEN SA.FISCALYEAR = 2017 THEN SA.SALESEXVAT/SA.EXCHANGERATEEURO END)/
SUM(CASE WHEN SA.FISCALYEAR = 2016 THEN SA.SALESEXVAT/SA.EXCHANGERATEEURO END) ) -1) AS 'SalesVar'
FROM
[BHXSQL2014-DEV].BMANALYTICS.DBO.EUACTIVESTORES AS EU
INNER JOIN
[EUUKSQL01].[DASHBOARD].[DBO].[SALESAGGREGATEWEEK] AS SA
ON
EU.[Store No] = SA.BRANCHNO
And EU.[Store No] In (
8702,8711,8701,4167,4164,4160,4169,4155,4794,4746,1701,4619,4617,8867,8878,8891,8743,8876,4806,4710,4100,4826,4148,8757,8866,8787,8821,8756
)
And SA.Fiscalweek between 25 and 30
--COMP FLAG (Y=COMP WEEK, N=NONCOMP WEEK, 'WHERE' STATEMENT EXCLUDES NON COMP WEEKS)
AND CASE WHEN LEFT(EU.[COMP WEEK],4) < 2017 THEN 'Y'
WHEN RIGHT(EU.[COMP WEEK],2) < SA.FISCALWEEK THEN 'Y'
ELSE 'N' END
= 'Y'
GROUP BY
EU.[Store No]
,SA.FISCALWEEK
ORDER BY
EU.[Store No]
Bien que vous pouvez faire des mathématiques dans SQL serveur, il est préférable de limiter cela aux opérations les plus simples - l'ajout et la comparaison, imo, sont les seuls qui en valent la peine. La régression linéaire est mathématique sur des sous-ensembles ordonnés, un genre de chose où une base de données relationnelle est particulièrement faible. Avez-vous vraiment besoin de le faire dans la base de données? Ne pouvez-vous pas l'insérer dans la couche application, utiliser une bibliothèque de statistiques correctement construite et simplement stocker le résultat? – Greenspark
il vient de rendre la vie plus facile de le faire une requête, où comme dans Excel son très salissant, je l'ai résolu maintenant de toute façon si vous voulez voir la réponse ci-dessous – PeterH