oracle 根据父级分类统计sql
时间: 2023-09-08 22:16:31 浏览: 43
假设你有这样一个表结构:
```
CREATE TABLE category (
id int,
name varchar(50),
parent_id int
);
```
其中 `id` 是分类的唯一标识,`name` 是分类名称,`parent_id` 是该分类的父级分类的 `id`。
如果你想要根据父级分类统计每个分类下的子分类数量,可以使用如下 SQL:
```
SELECT parent.name as parent_name, COUNT(child.id) as child_count
FROM category child
JOIN category parent ON child.parent_id = parent.id
GROUP BY parent.id, parent.name
ORDER BY parent.id;
```
这条 SQL 会先将 `category` 表中的数据自连接,然后根据父级分类进行分组,最后统计每个父级分类下子分类的数量。
相关问题
ORAcle如何根据sqlid查sql内容
在 Oracle 数据库中,可以通过以下语句根据 SQL_ID 查看 SQL 内容:
```
SELECT SQL_TEXT
FROM V$SQL
WHERE SQL_ID = 'your_sql_id';
```
其中,`your_sql_id` 指的是你要查看的 SQL 的 SQL_ID。执行该语句后,就可以看到对应的 SQL 内容了。
另外,如果你想查看某个用户的所有 SQL,可以将上述语句中的 `V$SQL` 替换为 `V$SQLAREA`,并添加 `AND PARSING_USER_ID = your_user_id` 条件,其中 `your_user_id` 指的是该用户的用户 ID。
oracle 收集单列统计信息的sql
Oracle 数据库中可以使用 `ANALYZE` 命令收集单列统计信息。
语法示例:
```
ANALYZE TABLE table_name COMPUTE STATISTICS FOR COLUMNS column_name;
```
其中,`table_name` 是要收集统计信息的表名,`column_name` 是要收集统计信息的列名。
例如,对于表名为 `employees`,列名为 `salary` 的列,可以使用如下命令收集统计信息:
```
ANALYZE TABLE employees COMPUTE STATISTICS FOR COLUMNS salary;
```