overmind 2023-09-03 11:23 采纳率: 82.4%
浏览 15
已结题

使用generate_series进行笛卡尔积

select generate_series(1,10)
  • 可以得到 从1到9

  • 我想得到99乘法表

    SELECT 
      *
    FROM
    (
      select generate_series(1,9) AS a,
      select generate_series(1,9) As b
    )
    ;
    
  • 应该怎么做

  • 写回答

9条回答 默认 最新

  • 奇幻小熊 2023-09-03 19:43
    关注

    要生成99乘法表,你可以使用两个 generate_series 函数来创建两个序列。然后,将这两个序列组合起来以得到每个乘法表的行和列。

    以下是一个示例查询,演示如何生成99乘法表:

    SELECT a AS multiplicand, b AS multiplier, a * b AS product
    FROM generate_series(1, 9) AS a, generate_series(1, 9) AS b;
    

    在上述查询中,我们使用两个 generate_series(1, 9) 函数来生成从1到9的序列。通过将它们组合在一起,并计算乘积,我们可以得到每个乘法表的行、列和乘积。

    查询结果将按照以下格式显示:

    multiplicand | multiplier | product
    -------------+------------+---------
    1            | 1          | 1
    1            | 2          | 2
    1            | 3          | 3
    ...          | ...        | ...
    9            | 8          | 72
    9            | 9          | 81
    

    这样,你就可以得到完整的99乘法表。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?

问题事件

  • 系统已结题 9月11日
  • 已采纳回答 9月3日
  • 赞助了问题酬金15元 9月3日
  • 创建了问题 9月3日