Función BIT_COUNT() en MySQL

La función BIT_COUNT() en MySQL se usa para devolver la cantidad de bits que están activos en la entrada dada. Los bits activos se pueden contar como un número de 1 presentado en un número binario.

Sintaxis:

BIT_COUNT(number)

Parámetro: este método acepta solo un parámetro.

  • número: 
    entero de entrada cuyo número de bits activos queremos calcular.

Devuelve: Devuelve el número de bits activos establecidos en el número.

Ejemplo-1:
encontrar el número de bits activos para el número 0 usando la función BIT_COUNT. Como el número binario equivalente de la entrada dada es 0, el número 1 en un número binario equivalente también es 0. Entonces, aquí obtendremos 0 bits activos.

SELECT BIT_COUNT(0) AS ActiveBits;

Producción :

BITS ACTIVOS
0

Ejemplo-2:
Encontrar el número de bits activos para el número 14 usando la función BIT_COUNT. Sabemos que la representación binaria equivalente de 14 es 1110. Aquí podemos ver que el número de 1 presente es 3. Entonces, el resultado será 3.

SELECT BIT_COUNT(14) AS ActiveBits;

Producción :

BITS ACTIVOS
3

Ejemplo-3:
encontrar el número de bits activos para el siguiente número binario usando la función BIT_COUNT. Como el número de 1 en el siguiente ejemplo es 0, 1, 4 y 7 respectivamente, obtendremos como resultado 0, 1, 4 y 7 bits activos.

SELECT BIT_COUNT(b'0000') AS ActiveBits1, 
BIT_COUNT(b'00100') AS ActiveBits2,
BIT_COUNT(b'01010101') AS ActiveBits3, 
BIT_COUNT(b'1111111') AS ActiveBits4;

Producción :

ACTIVEBITS1 ACTIVEBITS2 ACTIVEBITS3 ACTIVEBITS4
0 1 4 7

Ejemplo 4:
la función BIT_COUNT también se puede usar en los datos de la columna. Para demostrarlo, cree una tabla llamada HolidayDetails.

CREATE TABLE HolidayDetails (
Holiday_id INT AUTO_INCREMENT,  
YearDetails YEAR(4), 
MonthDetails INT(2) UNSIGNED ZEROFILL, 
DayDetails INT(2) UNSIGNED ZEROFILL,
PRIMARY KEY(Holiday_id));

Insertar algunos datos en la tabla HolidayDetails –

INSERT INTO HolidayDetails
(YearDetails, MonthDetails, DayDetails) VALUES
(2021, 1, 1), (2021, 1, 14),
(2021, 1, 26), (2021, 2, 19), 
(2021, 2, 21), (2021, 3, 10);

Entonces, la tabla HolidayDetails es la siguiente:

SELECT * from HolidayDetails;
VACACIONES_ID DETALLES DEL AÑO DETALLES DEL MES DETALLES DEL DÍA
1 2021 1 1
2 2021 1 14
3 2021 1 26
4 2021 2 19
5 2021 2 21
6 2021 3 10

Ahora vamos a encontrar el número de vacaciones por mes:

SELECT YearDetails, MonthDetails, 
BIT_COUNT(BIT_OR(1<<DayDetails)) AS No_Of_Holidays 
FROM HolidayDetails 
GROUP By YearDetails, MonthDetails;

Producción :

DETALLES DEL AÑO DETALLES DEL MES NO_DE_VACACIONES
2021 01 3
2021 02 2
2021 03 2

Publicación traducida automáticamente

Artículo escrito por jana_sayantan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *