sql >> Database teknologi >  >> RDS >> Sqlserver

Hammervægt/befolkningstal i T-SQL

Du kan bruge en hjælpetabel med forudberegnede Hamming-vægte for små tal, såsom bytes, derefter opdele værdien i overensstemmelse hermed, slutte sig til hjælpetabellen og få summen af ​​delvise Hamming-vægte som værdiens Hamming-vægt:

-- define Hamming weight helper table DECLARE @hwtally TABLE (byte tinyint, hw int); INSERT INTO @hwtally (byte, hw) VALUES (0, 0); INSERT INTO @hwtally (byte, hw) SELECT 1 - byte, 1 - hw FROM @hwtally; INSERT INTO @hwtally (byte, hw) SELECT 3 - byte, 2 - hw FROM @hwtally; INSERT INTO @hwtally (byte, hw) SELECT 7 - byte, 3 - hw FROM @hwtally; INSERT INTO @hwtally (byte, hw) SELECT 15 - byte, 4 - hw FROM @hwtally; INSERT INTO @hwtally (byte, hw) SELECT 31 - byte, 5 - hw FROM @hwtally; INSERT INTO @hwtally (byte, hw) SELECT 63 - byte, 6 - hw FROM @hwtally; INSERT INTO @hwtally (byte, hw) SELECT 127 - byte, 7 - hw FROM @hwtally; INSERT INTO @hwtally (byte, hw) SELECT 255 - byte, 8 - hw FROM @hwtally; -- calculate WITH split AS ( SELECT SUBSTRING(@value, number, 1) AS byte FROM master.dbo.spt_values WHERE type = 'P' AND number BETWEEN 1 AND LEN(@value) ) SELECT Value = @value, HammingWeight = SUM(t.hw) FROM split s INNER JOIN @hwtally t ON s.byte = t.byte

  1. Oprettelse af skrivebeskyttede visninger i SQL Server

  2. Bucketizing data og klokkeslæt

  3. Hvordan viser man mysql blob-billede i html ved hjælp af Vuejs?

  4. MySQL med C#, fra en PHP-udviklers synspunkt