impala sql查询 查询TABLE_NAME, column_name, data_type, COLUMN_TYPE, ORDINAL_POSITION, 先根据TABLE_NAME排序,再根据ORDINAL_POSITION排序,再根据TABLE_NAME分组取每组的第一条
时间: 2023-09-19 19:07:10 浏览: 151
查询数据库名,表名,表字段等
5星 · 资源好评率100%
你好!针对你的问题,可以使用如下的 Impala SQL 查询语句实现:
```
SELECT TABLE_NAME, column_name, data_type, COLUMN_TYPE, ORDINAL_POSITION
FROM (
SELECT TABLE_NAME, column_name, data_type, COLUMN_TYPE, ORDINAL_POSITION,
ROW_NUMBER() OVER (PARTITION BY TABLE_NAME ORDER BY ORDINAL_POSITION) AS row_num
FROM information_schema.columns
ORDER BY TABLE_NAME, ORDINAL_POSITION
) t
WHERE row_num = 1
```
这个查询语句会从 `information_schema.columns` 系统表中查询出所有表的列信息,并按照 `TABLE_NAME` 和 `ORDINAL_POSITION` 两个字段进行排序。然后,使用 `ROW_NUMBER()` 窗口函数对每个表的列信息进行编号,分组取每组的第一条。最后,用外层的 `SELECT` 语句筛选出编号为 1 的行,即每个表的第一条列信息。
希望这个查询语句能够解决你的问题,如有疑问,欢迎继续提问。
阅读全文