Alors voici ma question. Préparez-vous comme il faut un peu de réflexion juste pour envelopper votre tête autour de ce que je suis en train de faire. Je travaille avec Quarterly census employment and wage data
. Les données QCEW ont quelque chose appelé codes de suppression. Si une dénomination de données (globalement, quotient de localisation, et sur l'année chaque année chaque trimestre) est supprimée, alors toutes les données pour cette dénomination sont nulles. Je ma table mis en place de la manière suivante (uniquement en vous montrant des colonnes qui sont pertinentes pour la question):Utilisation de l'arithmétique dans SQL sur mes propres colonnes pour remplir une troisième colonne où elle est zéro. (compliqué, seulement lorsque certains critères sont remplis)
A County_Id column,
Industry_ID column,
Year column,
Qtr column,
colonne Supprimée (0 pour ne pas supprimé et 1 pour suppression),
colonne Data_Category (1 pour global, 2 pour lq, et 3 pour l'année),
colonne Data_Denomination (entre 1 et 8 pour les données spécifiques dans cette catégorie ex: emploi mensuel, salaire imposable, etc.), et une colonne de valeur (qui sera nulle si la Data_Category est supprimée - puisque toutes les valeurs de dénomination de données seront nulles). Maintenant, si les données globales (cat 1) pour, disons, 1991 trimestre 1 est supprimée, mais le trimestre 1 de l'année suivante a globalement et sur l'année (chats 1 et 3) pas supprimé, alors nous pouvons en déduire quoi la valeur serait pour les données supprimées de cette première année, puisque OTY1991q1 = (Overall1991q1 - Overall1990q1)
. Donc, pour trouver ces données supprimées, nous devrions simplement soustraire nos valeurs de cat 1 (denom 1-8) de nos valeurs cat 3 (denom 1-8) pour remplacer les zéros qui sont dans nos valeurs supprimées de l'année précédente. C'est assez facile à comprendre mathématiquement, la difficulté est qu'il y a des millions de colonnes avec lesquelles vérifier ces critères. J'essaie d'écrire une sorte de requête SQL qui ferait cela pour moi, vérifiez pour vous assurer que Overall-n qtr-n est supprimé, puis regardez pour voir si l'année suivante n'est pas à la fois global et oty, (en Si ces critères sont remplis, effectuez l'arithmétique pour les deux catégories Data_Cat-Data_Denom et remplacez le zéro dans les valeurs Cat-Denom respectives
Vous trouverez ci-dessous un exemple simple (non pertinent). data_cats enlevés) que je l'espère, vous aidera à faire ce que je suis en train de faire à travers.
|CountyID IndustryID Year Qtr Suppressed Data_Cat Data_Denom Value
| 5 10 1990 1 1 1 1 0
| 5 10 1990 1 1 1 2 0
| 5 10 1990 1 1 1 3 0
| 5 10 1991 1 0 1 1 5
| 5 10 1991 1 0 1 2 15
| 5 10 1991 1 0 1 3 25
| 5 10 1991 1 0 3 1 20
| 5 10 1991 1 0 3 2 20
| 5 10 1991 1 0 3 3 35
donc, fondamentalement, ce que nous essayons de faire ici est de prendre l'ensemble des données de chaque catégorie de données (j'ai enlevé lq ~ data_cat 2) parce que ce n'est pas pertinent et data_den om (que j'ai ramené de 8 à 3 pour simplifier) en 1991, soustrayez-le de la valeur globale de 1991 et cela vous donnera le
| valeur pour 1990 cat_1 de l'année précédente. Donc ici data_cat 1 Data_denom 1 serait 15 (20-5), denom 2 serait 5 (20-15), et denom 3 serait 10 (35-25). (Oty 1991q1 - global 1991q1) = 1990q1. J'espère que ça aide. Comme je l'ai dit, le problème n'est pas le calcul, c'est la formulation d'une requête qui va vérifier ce critère des millions et des millions de fois.
Ce sera beaucoup plus facile si vous pouvez fournir des données factices et votre sortie souhaitée à partir de ces données. – iamdave
J'ai un exemple de fichier excel que j'ai mis en place qui simplifie ce que j'essaie de faire, mais c'est la première fois que je pose une question, est-il possible de partager le fichier sur cette page? –
https://senseful.github.io/web-tools/text-table/ - et formatez comme code dans votre question – SqlZim