Comment puis-je choisir count(*)
parmi deux tables différentes (appelez-les tab1
et tab2
) ayant comme résultat:
Count_1 Count_2
123 456
J'ai essayé ça:
select count(*) Count_1 from schema.tab1 union all select count(*) Count_2 from schema.tab2
Mais tout ce que j'ai, c'est:
Count_1
123
456
FROM dual
.Comme information supplémentaire, pour accomplir la même chose dans SQL Server, il vous suffit de supprimer la partie "FROM dual" de la requête.
la source
Tout simplement parce que c'est légèrement différent:
Il donne les réponses transposées (une ligne par tableau au lieu d'une colonne), sinon je ne pense pas que ce soit très différent. Je pense que sur le plan des performances, ils devraient être équivalents.
la source
Mon expérience est avec SQL Server, mais pourriez-vous faire:
Dans SQL Server, j'obtiens le résultat que vous recherchez.
la source
Autres méthodes légèrement différentes:
la source
Comme je ne vois aucune autre réponse à ce sujet.
Si vous n'aimez pas les sous-requêtes et avez des clés primaires dans chaque table, vous pouvez le faire:
Mais en termes de performances, je pense que la solution de Quassnoi est meilleure et celle que j'utiliserais.
la source
SELECT (SELECT COUNT(*) FROM table1) + (SELECT COUNT(*) FROM table2) FROM dual;
la source
Voici de moi à partager
Option 1 - compter à partir du même domaine à partir d'une table différente
Option 2 - compter à partir d'un domaine différent pour la même table
Option 3 - compter à partir d'un domaine différent pour la même table avec "union all" pour avoir des lignes de compte
Profitez du SQL, je le fais toujours :)
la source
la source
la source
Un coup de couteau rapide est venu avec:
Remarque: J'ai testé cela dans SQL Server, ce
From Dual
n'est donc pas nécessaire (d'où la différence).la source
Pour un peu d'exhaustivité - cette requête créera une requête pour vous donner un compte de toutes les tables pour un propriétaire donné.
La sortie est quelque chose comme
Que vous pouvez ensuite exécuter pour obtenir vos comptes. C'est juste un script pratique à avoir parfois.
la source
Si les tables (ou au moins une colonne clé) sont du même type, effectuez d'abord l'union, puis comptez.
Ou prenez votre satisfaction et mettez une autre somme () autour d'elle.
la source
la source
ou
la source
JOINDRE avec différentes tables
la source
sélectionnez (sélectionnez count ( ) dans tab1 où
field
comme 'value') + (sélectionnez count ( ) dans tab2 oùfield
comme 'value') countla source
la source