sql >> データベース >  >> RDS >> Sqlserver

T-SQLでのハミング重み/母集団数

    バイトなどの小さい数値に対して事前に計算されたハミング重みを持つヘルパーテーブルを使用し、それに応じて値を分割し、ヘルパーテーブルに結合して、部分的なハミング重みの合計を値のハミング重みとして取得できます。

    -- 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. PostgreSQLの階層合計

    2. エラー:未定義のプロパティ$ load

    3. sqliteLog 14:行でファイルを開くことができません

    4. 5つ星評価の画像のランキングコンテスト結果