使用 OpenAI 提示 SQL

自然语言查询

借助 Space and Time 支持 OpenAI 的聊天机器人,您无需了解任何 SQL 即可与数据库交互。您可以从简单的自然语言输入生成 SQL 命令。

聊天机器人可以在时空工作室中找到。让我们看一下一些世代示例:

📘

该聊天机器人由 OpenAI 启用,对于给定的自然语言输入可能不会返回完全相同的 SQL 语句。

示例查询

让我们编写一个简单的查询,它将返回以太坊上执行最多交易的前 10 个地址

show me the top users on Ethereum by number of transactions limit 10

执行完这个提示后,就会生成这条SQL语句。

SELECT
  ETHEREUM.TRANSACTIONS.FROM_ADDRESS,
  COUNT(ETHEREUM.TRANSACTIONS.TRANSACTION_HASH) AS TRANSACTION_COUNT
FROM
  ETHEREUM.TRANSACTIONS
GROUP BY
  ETHEREUM.TRANSACTIONS.FROM_ADDRESS
ORDER BY
  CAST(TRANSACTION_COUNT AS DECIMAL(38)) DESC
LIMIT
  10;

让我们尝试另一个以太坊每周活跃用户预测。我们可以将以下内容输入到聊天机器人中:

文本

give me a forecast of active users over time by week 

并且会生成这样的SQL语句:

SQL

SELECT
  DATE_TRUNC ('week', CAST(TIME_STAMP AS DATE)) AS week,
  COUNT(DISTINCT WALLET_ADDRESS) AS active_users
FROM
  ETHEREUM.NATIVE_WALLET
GROUP BY
  DATE_TRUNC ('week', CAST(TIME_STAMP AS DATE))
ORDER BY
  week ASC;

最后,我们添加更多的逻辑,提出更具挑战性的问题,根据特定的逻辑来获取以太坊上的钱包信息。我们可以将以下内容输入到聊天机器人中:

sql

show me all the ethereum wallets with a balance > 5 and at least 1 transaction associated

并且会生成这样的SQL语句:

SQL

SELECT 
    ETH.WALLET_ADDRESS,
  CAST(ETH.BALANCE AS DECIMAL(30))
FROM 
    ETHEREUM.NATIVE_WALLET ETH 
INNER JOIN
    ETHEREUM.TRANSACTION TX ON T.TRANSACTION_HASH = T.TRANSACTION_HASH 
WHERE 
    CAST(BALANCE AS DECIMAL(30))>5
GROUP BY 
  ETH.WALLET_ADDRESS