¿Hay una manera de obtener el número total de 1 de Postgres en un tipo de "cadena de bits"?Número total de "1s" en una máscara de bits de Postgres
Respuesta
Si necesita que sea realmente eficiente, aquí está una discusión: Efficiently determining the number of bits set in the contents of, a VARBIT field
El primero/primer bit? O la cantidad total de bits activados? La primera: máscara de bits (& 1) el bit. Este último: una consulta desagradable, como:
SELECT (myBit & 1 + myBit >> 1 & 1 + myBit >> 2 & 1) AS bitCount FROM myBitTable;
supongo, también podría lanzar en una cadena y contar los números 1 de PL/SQL.
número total de bits activados. Casting to a strings parece ser épico no-performant. Supongo que podría escribir una función para manejar la serie de bits (no sé lo suficiente de PL/SQL para saber si puedo recorrer fácilmente bitsize y extraer el resultado) –
Hmmm ... parece que las máscaras de bits * ya * cuerdas internamente, entonces tal vez esa solución no es tan mala como parece. –
usted tiene una manera sencilla utilizando plpgsql here.
# select length(replace(x::text, '0', '')) from (values ('1010111101'::bit varying)) as something(x);
length
--------
7
(1 row)
y el enfoque sin conversión de cadenas:
# select count(*) from (select x, generate_series(1, length(x)) as i from (values ('1010111101'::bit varying)) as something(x)) as q where substring(x, i, 1) = B'1';
count
-------
7
(1 row)
Me gusta el método de reemplazo de cadena y longitud. +1 – pestilence669
lo sé, esto ya es un viejo tema, pero yo encontró una buena respuesta aquí: https://stackoverflow.com/a/38971017/4420662
Adaptado sería:
=# select length(regexp_replace((B'1010111101')::text, '[^1]', '', 'g'));
length
--------
7
(1 row)
- 1. pregunta de máscara de bits?
- 2. manipulación de bits en C# usando una máscara
- 3. Búsqueda por máscara de bits en ActiveRecord
- 4. ¿Número total de publicaciones?
- 5. Expresión regular para cadenas de bits con número par de 1s
- 6. PHP debug_backtrace uso de máscara de bits
- 7. ¿Cómo implementar una máscara de bits en php?
- 8. Algoritmo para generar la máscara de bits
- 9. ¿Puedo crear una máscara de bits de 1 a 64 bits sin condicional en Java?
- 10. cómo convertir un int a una máscara de bits?
- 11. Servidor SQL: varbinary int para almacenar una máscara de bits?
- 12. Cómo genrate una máscara de bits en blanco y negro de un mapa de bits de 32 bits
- 13. Contar número total de XmlNodes en C#
- 14. Convenciones de nomenclatura de parámetros de máscara de bits?
- 15. número de 1 en 32 bits número
- 16. Contar el número de bits puestos en un entero
- 17. Número total de elementos definidos en una enumeración
- 18. Seleccionar número de fila en postgres
- 19. ¿Es posible almacenar un número de 1 byte en Postgres?
- 20. muy lento mapa de bits montón escanear en Postgres
- 21. Android: cargando un mapa de bits de máscara alfa
- 22. formato de número (máscara de entrada) en jQuery
- 23. ¿Es útil agregar una máscara de bits a todas las tablas en una base de datos?
- 24. Obtener el número total de elementos enum
- 25. Número total de fotogramas con ffmpeg
- 26. ¿La forma más rápida de calcular una máscara de bits X-bit?
- 27. Vimdiff: visualización del número total de cambios
- 28. Confusión enum de Java con la creación de una máscara de bits y comprobación de permisos
- 29. python postgres cursor timestamp número
- 30. ¿Cómo obtener el número total de iteraciones en un foreach
@YehudaKatz: la discusión en el enlace es interesante, pero se trata de "primer bit set" y "último bit set", que no responde a la pregunta en cuestión. ¿Cómo puede ser esta la respuesta correcta? –