CASE WHEN 后面的字段去重
时间: 2023-08-25 17:16:27 浏览: 119
如果你想对 `CASE WHEN` 语句后面的字段进行去重,可以使用子查询或者临时表来实现。以下是使用子查询的示例:
```sql
SELECT DISTINCT field
FROM (
SELECT CASE WHEN condition THEN field ELSE NULL END AS field
FROM your_table
) AS subquery
WHERE field
相关问题
sum() 函数里加case when 统计一个字段 并用另一个字段去重 怎么实现
您可以使用以下 SQL 语句来实现:
```
SELECT SUM(CASE WHEN col1='xxx' THEN col2 ELSE 0 END) AS sum_value
FROM (
SELECT DISTINCT col3, col1, col2
FROM your_table
) t
```
其中,`col1` 是您要统计的字段,`col2` 是您要求和的字段,`col3` 是您要用来去重的字段。`xxx` 是您要筛选的条件。在这个查询中,首先使用了一个子查询来过滤重复的 `col3`,然后在主查询中使用 `CASE WHEN` 语句统计符合条件的 `col2` 的和。
oracle 用SUM 和CASE WHEN函数根据一个字段的一些条件统计数量并按另一个字段去重 语句怎么写
您可以使用以下 Oracle SQL 语句来使用 `SUM` 和 `CASE WHEN` 函数根据一个字段的一些条件统计数量并按另一个字段去重:
```
SELECT
COUNT(DISTINCT another_field),
SUM(CASE WHEN your_field = your_condition_1 THEN 1 ELSE 0 END) AS count_1,
SUM(CASE WHEN your_field = your_condition_2 THEN 1 ELSE 0 END) AS count_2,
SUM(CASE WHEN your_field = your_condition_3 THEN 1 ELSE 0 END) AS count_3
FROM your_table;
```
其中,`another_field` 为您想要去重的字段,`your_table` 为您的表名,`your_field` 为您想要筛选的字段名,`your_condition_x` 为您想要筛选的条件。请根据实际情况替换这些参数。
这条 SQL 语句将会返回去重后的 `another_field` 字段数量,以及根据 `your_field` 字段的三个条件分别统计的数量结果。您可以根据实际情况修改 `CASE WHEN` 中的条件,并添加更多的 `SUM` 和 `CASE WHEN` 子句。
阅读全文