从 SQL 数据库 table 中获取重复对、三元组、四元组等?

Get repeating pairs, triples, quadruples and so on from an SQL database table?

我有一张 table 来自波兰 Lotto Multi Multi 20/80 的图纸历史记录。因此,每行包含 20 列,数字范围为 1 到 80,行内没有重复数字。

在最后一次开奖中,有几张牌同时出现了 80 和 77(查看图片 link),但在 SQL 结果上似乎没有任何 80 或什至77 个数字,最大的是 nr2 列上的 63 个(查看图片 link 了解详情)。 我正在尝试这段 SQL 查询代码,但似乎它并没有 "catch" 所有列,而是检查最大列号 10(在这种情况下最大列数为 63)并且它不会进一步到第 20 列(其中存储的最大可能数为 80)。

这是我使用的完整 SQL 查询代码:

CREATE TABLE IF NOT EXISTS unpivot AS
SELECT *
FROM (
        SELECT DrawId, N1 as n_value FROM draws union all
        SELECT DrawId, N2 as n_value FROM draws union all
        SELECT DrawId, N3 as n_value FROM draws union all
        SELECT DrawId, N4 as n_value FROM draws union all
        SELECT DrawId, N5 as n_value FROM draws union all
        SELECT DrawId, N6 as n_value FROM draws union all
        SELECT DrawId, N7 as n_value FROM draws union all
        SELECT DrawId, N8 as n_value FROM draws union all
        SELECT DrawId, N9 as n_value FROM draws union all
        SELECT DrawId, N10 as n_value FROM draws union all
        SELECT DrawId, N11 as n_value FROM draws union all
        SELECT DrawId, N12 as n_value FROM draws union all
        SELECT DrawId, N13 as n_value FROM draws union all
        SELECT DrawId, N14 as n_value FROM draws union all
        SELECT DrawId, N15 as n_value FROM draws union all
        SELECT DrawId, N16 as n_value FROM draws union all
        SELECT DrawId, N17 as n_value FROM draws union all
        SELECT DrawId, N18 as n_value FROM draws union all
        SELECT DrawId, N19 as n_value FROM draws union all
        SELECT DrawId, N20 as n_value FROM draws
     ) as T;

SELECT nr1, nr2, count(*) as total
FROM
    (
    SELECT up1.n_value as nr1, up2.n_value as nr2
    FROM unpivot up1
    JOIN unpivot up2
      ON up1.DrawId = up2.DrawId
     AND up1.n_value < up2.n_value
   ) T
GROUP BY nr1, nr2
ORDER BY nr2 desc;
-- LIMIT 300;

Repeating pairs into the database

Query results

我怀疑问题是:

 CREATE TABLE IF NOT EXISTS unpivot AS . . .

也就是说,您有旧版本的 table 并且没有创建新版本。

相反,执行:

DROP TABLE IF EXISTS unpivot;

然后:

CREATE TABLE unpivot AS . . .