case when以后 group by
时间: 2023-10-31 13:58:17 浏览: 82
在MySQL中,可以使用CASE WHEN语句和GROUP BY子句来实现行转列的功能。以下是一个示例:
SELECT
syears,
MAX(CASE WHEN smonths = '1990' THEN samount END) AS '1990',
MAX(CASE WHEN smonths = '1991' THEN samount END) AS '1991',
MAX(CASE WHEN smonths = '1992' THEN samount END) AS '1992',
MAX(CASE WHEN smonths = '1993' THEN samount END) AS '1993',
MAX(CASE WHEN smonths = '1994' THEN samount END) AS '1994'
FROM sale
GROUP BY syears;
在这个示例中,我们使用CASE WHEN语句将smonths列的值作为条件进行判断,并根据每个条件的结果选择不同的samount值。使用MAX函数可以将每个条件的结果汇总为一个结果。最后,使用GROUP BY子句按照syears进行分组,以得到每个年份的汇总结果。
请注意,你可以根据实际需求进行修改。这只是一个示例,你可以根据你的数据和要求来调整CASE WHEN语句和GROUP BY子句的逻辑。
相关问题
case when 和group by
case when是一种条件语句,用于根据不同的条件返回不同的结果。它通常用于SQL查询中,可以在SELECT语句中使用。
group by是一种聚合函数,用于将数据按照指定的列进行分组,并对每个分组进行聚合计算。它通常用于SELECT语句中,可以用于计算每个分组的平均值、总和、最大值等。
使用case when怎么group by
使用CASE WHEN语句进行GROUP BY可以根据条件对数据进行分组。下面是一个示例:
```sql
SELECT
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE result3
END AS group_column,
COUNT(*) AS count
FROM
your_table
GROUP BY
group_column;
```
在上面的示例中,根据条件(condition1、condition2)将数据分到不同的组中,并使用CASE WHEN语句创建一个名为group_column的分组列。然后使用COUNT(*)对每个分组进行计数。
请将"your_table"替换为您实际使用的表名,"condition1、condition2"替换为适合您的条件,"result1、result2、result3"替换为相应的结果。
阅读全文