-1
votes

Convertissez la requête DuPes pour supprimer la requête DuPès

Cela fonctionne totalement bien pour que je trouve des dupes dans une table dans Google Big Query.

SELECT *
FROM (
  SELECT
      *,
      ROW_NUMBER()
          OVER (PARTITION BY KeyReport,Analytics,Description,AsOfDate)
          row_number
  FROM `corp-analytics.Reports.Metrics`
)
WHERE row_number > 1 AND AsOfDate IN('01-03-2019','01-17-2019')


0 commentaires

3 Réponses :


1
votes

Tout d'abord, votre appel à Row_Number CODE> a beaucoup de sens, car vous n'avez jamais fourni de clause code> par code>. Sans cela, vous disez fondamentalement à BigQuery que vous ne vous souciez pas vraiment de l'ordre utilisé pour déterminer le numéro de ligne. Cela de côté, voici une requête que vous pouvez essayer de supprimer vos enregistrements:

DELETE
FROM corp-analytics.Reports.Metrics AS c
WHERE
    (SELECT ROW_NUMBER() OVER (PARTITION BY KeyReport, Analytics, Description, AsOfDate
                               ORDER BY some_column)
     FROM corp-analytics.Reports.Metrics AS c2
     WHERE d.id = d2.id) = 1 AND
    AsOfDate IN ('01-03-2019', '01-17-2019');


1 commentaires

Il n'y a pas d'identifiant unique dans la table. Comment puis-je modifier le SQL pour tenir compte de cela? En outre, je ne peux pas supprimer les disques Dupe en place? En quelque sorte, cela crée une nouvelle table, appelée «mises à jour». Il doit y avoir une sorte de réglage qui contrôle cela parce que je ne lui dis pas explicitement de le faire.



0
votes

Il s'agit d'une erreur sur un caractère incorrect "('. Cela ne peut pas être Droite.

C'est parfaitement correct. L'analyseur s'attend à voir le nom de la table après, il voit plutôt «(» et lancer une erreur. Voir Tim Biegeleisen Répondez à la modification de votre SQL.

https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax xxx


0 commentaires

0
votes

Vous aurez peut-être besoin d'une existence là-bas:

Supprimer De corp-analytics.reports.meports comme c Où existe (Sélectionnez Row_Number () Over (Partition par KeyReport, Analytics, Description, AsofDate Commander par certains_column) De corp-analytics.reports.metrics comme c2 Où d.id = d2.id) = 1 et Asofdate dans ('01 -03-2019 ', '01 -17-2019');


0 commentaires