¿Cómo puedo seleccionar count(*)
entre dos tablas diferentes (llamarlas tab1
y tab2
) teniendo como resultado:
Count_1 Count_2
123 456
He intentado esto:
select count(*) Count_1 from schema.tab1 union all select count(*) Count_2 from schema.tab2
Pero todo lo que tengo es:
Count_1
123
456
FROM dual
.Como información adicional, para lograr lo mismo en SQL Server, solo necesita eliminar la parte "DE dual" de la consulta.
fuente
Solo porque es un poco diferente:
Da las respuestas transpuestas (una fila por tabla en lugar de una columna), de lo contrario no creo que sea muy diferente. Creo que en cuanto al rendimiento deberían ser equivalentes.
fuente
Mi experiencia es con SQL Server, pero podría hacer:
En SQL Server obtengo el resultado que buscas.
fuente
Otros métodos ligeramente diferentes:
fuente
Como no puedo ver ninguna otra respuesta, mencione esto.
Si no le gustan las subconsultas y tiene claves principales en cada tabla, puede hacer esto:
Pero en cuanto al rendimiento, creo que la solución de Quassnoi es mejor y la que usaría.
fuente
SELECT (SELECT COUNT(*) FROM table1) + (SELECT COUNT(*) FROM table2) FROM dual;
fuente
Aquí es de mi parte para compartir
Opción 1: contar desde el mismo dominio desde una tabla diferente
Opción 2: contar desde diferentes dominios para la misma tabla
Opción 3: contar desde diferentes dominios para la misma tabla con "union all" para tener filas de conteo
Disfruta el SQL, siempre lo hago :)
fuente
fuente
fuente
Se le ocurrió una puñalada rápida:
Nota: Probé esto en SQL Server, por
From Dual
lo que no es necesario (de ahí la discrepancia).fuente
Para completar, esta consulta creará una consulta para darle un recuento de todas las tablas para un propietario determinado.
La salida es algo como
Que luego puede ejecutar para obtener sus cuentas. Es solo un guión útil para tener a veces.
fuente
Si las tablas (o al menos una columna clave) son del mismo tipo, haga primero la unión y luego cuente.
O tome su satisfacción y ponga otra suma () a su alrededor.
fuente
fuente
o
fuente
ÚNETE con diferentes mesas
fuente
select (select count ( ) from tab1 donde
field
like 'value') + (select count ( ) from tab2 dondefield
like 'value') countfuente
fuente