1、针对1对多,查询合并多列的情况场景解决方案:
SELECT
t.news_id,
t.sentiment_label AS '情感', (
CASE WHEN t.sentiment_label=1
then '负面'
WHEN t.sentiment_label=2
then '中性'
ELSE '正面'
END
) as '情感描述'
FROM
tbm_popular_feelings t
WHERE
t.sentiment_label IS NOT NULL
AND t.create_time BETWEEN '2021-01-10 09:55:00'
AND '2021-01-14 09:55:00'
ORDER BY t.id desc;
运行结果:
2、合并结果,多列为一列:
运行的SQL语句:
关键字:
GROUP_CONCAT(t.sentiment_label) AS '情感'
SELECT
t.news_id,
GROUP_CONCAT(t.sentiment_label) AS '情感'
FROM
tbm_popular_feelings t
WHERE
t.sentiment_label IS NOT NULL
AND t.create_time BETWEEN '2021-01-10 09:55:00'
AND '2021-01-14 09:55:00'
GROUP BY
t.news_id;
运行结果:
3、进行编码枚举描述说明,进一步优化SQL显示结果更为友好:
SELECT
t.news_id,
GROUP_CONCAT(t.sentiment_label) AS '情感',
GROUP_CONCAT(
CASE
WHEN t.sentiment_label = 1 THEN
'负面'
WHEN t.sentiment_label = 2 THEN
'中性'
ELSE
'正面'
END
) AS '情感描述'
FROM
tbm_popular_feelings t
WHERE
t.sentiment_label IS NOT NULL
AND t.create_time BETWEEN '2021-01-10 09:55:00'
AND '2021-01-14 09:55:00'
GROUP BY
t.news_id;
运行结果如下:
看起来更为友好!
上一篇:
PKIX path validation failed: java.security.cert.CertPathValidatorException: validity check failed
下一篇:
java8中的Stream流式操作总结,List转Map或List转LinkedHashMap使用Collectors.groupingBy用法
java设置log的debug模式配置文件怎么修改 java中log的info是什么
Java 日志系统1. 创建日志记录器private final Logger logger = LoggerFactory.getLogger(LoggerTest.class);2. 打印日志信息// 跟踪轨迹,记录跟踪代码运行过程种的信息
logger.trace("这是 trace 日志");
// 调试信息
logger.debug("这是 debug 日志");
// 自定义的一些信息
go语言如何创建以时间命名的日志文件 go做日期
1.time包 2.time.Time类型,用来表示时间 3.获取当前时间,now :=time.Now() 4.日期函数time.Now().Day()=>日期
time.Now().Minute()=>分钟
time.Now().Month()=>月份
time.Now().Year()=>年份5.time.Now().UnixNano()
hive中循环语句 hive怎么遍历一个数组
目录0 问题描述1 数据准备2 问题分析3 小结0 问题描述表名:t2 表字段及内容: a 1011 0101 问题:如何将字符'1'的位置提取出来 输出结果如下所示: 1,3,4 2,41 数据准备create table t2 as
select '1011' as a
UNION ALL
select '0101' as a2 问题分析核心思想:(1)将字符串按照空格切开(2)利用posex