J'essaie de migrer vers SQL standard et de lire une partie de la documentation sur les fonctions de la date, mais je suis toujours un peu confus quant à la manière de procéder à une certaine requête.
Ma requête SQL actuelle Legacy est ci-dessous: p>
select date, round(sum(revenue_total),2) as revenue from [project:dataset.table] where month(date) = month(date_add(current_date(),-1,'month')) group by 1
4 Réponses :
En ce qui concerne les fonctions de date à la main, il existe des fonctions équivalentes dans BG's SQL standard
mois () -> extrait (): extrait (pièce de date_expression) code>, par ex. p>
date_add () code> et
actuel_date () code> est toujours disponible. p> li>
ul> p>
Vous voulez probablement: Je soupçonne que votre colonne code> est en réalité de type Notez que la fonction code> extrait code> a un horodatage code>, auquel cas tu as besoin de Convertir en une date code> d'abord: p>
en option " / CODE> CLAUSE, qui vous permet de spécifier le fuseau horaire à utiliser si vous ne souhaitez pas utiliser la valeur par défaut, qui est UTC. Voir le Documentation de la fonction Timeestamp pour plus d'informations. < / p> p>
Suivez un exemple avec le référentiel public GITUB:
SELECT CAST(committer.date AS DATE), COUNT(*) FROM `bigquery-public-data.github_repos.commits` WHERE EXTRACT(MONTH FROM CAST(committer.date AS DATE)) = EXTRACT(MONTH FROM (DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH))) GROUP BY 1 LIMIT 10
Je suppose que vous voulez vraiment: Cependant, ce que vous avez écrit ne prend pas l'année en compte, ce serait donc: P> where extract(month from date) = extract(month from current_date) - 1
Si je comprends votre question, vous voulez faire de cette conformité ANSI SQL? Si oui, je pense que
extrait code> est ce que vous voulez:
extrait (mois à partir de code>.