首页 > 解决方案 > 满足条件时更改列的值

问题描述

我需要帮助来进行对日期进行分组的查询,然后告诉我在这些日期中是否有具有一种或多种不同颜色的日期,并更改这些日期的列颜色值:

// What I have
    DATE    |  Color  
 23/01/2019 |  BLUE      
 24/01/2019 |  RED       
 24/01/2019 |  RED
 24/01/2019 |  RED
 27/01/2019 |  RED
 27/01/2019 |  GREEN
 28/01/2019 |  PURPLE
 29/01/2019 |  YELLOW
 02/02/2019 |  BROWN
 02/02/2019 |  BLUE
 15/02/2019 |  RED
 17/02/2019 |  RED
 17/02/2019 |  PURPLE
 20/02/2019 |  WHITE
 23/02/2019 |  BLACK
 27/02/2019 |  CYAN


// Output I need
    DATE    |  Color  
 23/01/2019 |  BLUE      
 24/01/2019 |  RED
 27/01/2019 |  MULTIPLE
 28/01/2019 |  PURPLE
 29/01/2019 |  YELLOW
 02/02/2019 |  MULTIPLE
 15/02/2019 |  RED
 17/02/2019 |  MULTIPLE
 20/02/2019 |  WHITE
 23/02/2019 |  BLACK
 27/02/2019 |  CYAN 

我进行了一个查询,将日期分组并告诉我每个事件中有多少种颜色,但不知道有多少种不同

我提出的查询是:

SELECT Date, color, COUNT(*) AS ColorCount 
FROM Events 
GROUP BY DataDoc 
HAVING ColorCount > 0

我需要这个用于我正在制作的日历应用程序,并且我正在使用 SQLite

标签: androidsqldatabasesqlite

解决方案


我会这样做:

select date, case when count(distinct color) >1 then 'MULTIPLE' else color end as color
from events
group by date

编辑:记得添加 DISTINCT 或多次使用相同颜色的一天将被计算多次


推荐阅读