J'essaie de compter tous les identifiants distincts en fonction des conditions. Mais je suis incapable de comprendre où je vais mal avec la syntaxe. La logique estPL/SQL: Besoin d'aide pour créer des colonnes calculées en fonction des conditions. à faire dans une requête select
COUNTD(IF ([column_name1] = 1) THEN [DATAPAGEID] END)
Cette formule est utilisée dans Tableau. Toutefois, lors de l'écriture dans une requête PL/SQL comme
Select FT.NAME, COUNT(DISTINCT FT.pageID IF FT."column_name" = 1)
as total_expected
FROM
(Sub Query) FT
Group by FT.Name
Order by FT.Name
Inutile de dire ses erreurs de lancement. Maintenant, je peux écrire des requêtes séparées qui peuvent me donner chaque numéro en utilisant une condition where. Par exemple, si je voulais un compte de pageid distincts où de colonne 1 = 1, je voudrais écrire quelque chose comme ça
Select FT.SITENAME, COUNT(DISTINCT DATAPAGEID) as Datapage
from
(sub query)
WHERE FT."column_name" = 1
mais le problème avec cela est que j'ai d'autres colonnes calculées dans la requête qui devra être tous partie de la même rangée. Pour illustrer, voici ce que la table ressemblerait
name Calculated_Column1 Calculated_Column2 Calculated_column3
abc 781 811 96.54%
pqr 600 800 75.00%
où calculated_column3 est le résultat de 781/811. Par conséquent, je ne peux pas avoir une nouvelle requête pour chaque colonne. Je pensais que l'utilisation d'une condition if lors du calcul des colonnes permettrait de résoudre ce problème, mais je ne peux pas obtenir la syntaxe correcte en quelque sorte. Par conséquent, j'ai besoin de savoir comment je peux créer des colonnes calculées conditionnelles dans la requête de sélection. Si je ne l'ai pas bien expliqué, s'il vous plaît faites le moi savoir et je vais essayer de clarifier davantage.