# 使用 OpenAI 提示 SQL (自然语言查询) **Published by:** [honey](https://paragraph.com/@duoergun/) **Published on:** 2024-02-14 **URL:** https://paragraph.com/@duoergun/openai-sql ## Content 借助 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语句: SQLSELECT 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; 最后,我们添加更多的逻辑,提出更具挑战性的问题,根据特定的逻辑来获取以太坊上的钱包信息。我们可以将以下内容输入到聊天机器人中: sqlshow me all the ethereum wallets with a balance > 5 and at least 1 transaction associated 并且会生成这样的SQL语句: SQLSELECT 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 ## Publication Information - [honey](https://paragraph.com/@duoergun/): Publication homepage - [All Posts](https://paragraph.com/@duoergun/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@duoergun): Subscribe to updates - [Twitter](https://twitter.com/AAA12388321): Follow on Twitter