mysql统计查询和一行转多行(列转行)--- help_topic

news2024/11/16 1:25:25

mysql.help_topic
help_topic本身是Mysql一个帮助解释注释表,用于解释Mysql各种专有名词,由于这张表数据ID是从0顺序增加的,方便我们用于计数,但是8.0.17版本的只有656条数据,超过这个数字,我们就需要己自定义一张表

1、查询每个渠道对应的30天内的page_view、view_content、add_to_cart、complate_payment的总数

SELECT dc.channel_name,
       SUM(CASE WHEN del.event_name = 'page_view' THEN 1 ELSE 0 END)  AS page_view,
       SUM(CASE WHEN del.event_name = 'view_content' THEN 1 ELSE 0 END)  AS view_content,
       SUM(CASE WHEN del.event_name = 'add_to_cart' THEN 1 ELSE 0 END)  AS add_to_cart,
       SUM(CASE WHEN del.event_name = 'complate_payment' THEN 1 ELSE 0 END)  AS complate_payment

FROM da_channel AS dc LEFT JOIN da_event_log AS del
ON dc.id = del.channel_id
AND  DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= DATE(del.created_at) 
GROUP BY dc.id

---on后面直接跟and,不是where后面跟and

如图所示:

重点:有时我们在生成一些时间轴类似的数据时,要求数据库不管有没有指定天的数据,都要生成该时间节点,可用mysql.help_topic来解决此类问题,通过序列和日期函数相结合来满足我们的业务需求。

列传行:
SELECT DATE_FORMAT(DATE_ADD('2022-12-01', INTERVAL(CAST(help_topic_id AS SIGNED INTEGER)+ 0) DAY),'%Y-%m-%d') date_day
 FROM mysql.help_topic
 WHERE help_topic_id  < DAY(LAST_DAY('2022-12-01'))
 ORDER BY help_topic_id

或者
SELECT
    DATE( DATE_ADD( '2022-12-01', INTERVAL @s DAY ) ) AS date,
    '异常总条数' as e_name,
     @s := @s + 1 AS `index`
FROM
    mysql.help_topic,
    ( SELECT @s := 0 ) temp 
WHERE
    @s <= DATEDIFF('2022-12-31','2022-12-01')

数据如下:

 2、查询出12月整个月份,统计相关的值sql语句:

 SELECT a.date_day, 
        SUM(CASE WHEN del.event_name = 'complate_payment' THEN 1 ELSE 0 END)  AS shopify,
        SUM(CASE WHEN del.state = 0 THEN 1 ELSE 0 END)  AS success,
        SUM(CASE WHEN del.state = 1 THEN 1 ELSE 0 END)  AS failures
FROM (
  SELECT DATE_FORMAT(DATE_ADD('2022-12-01', INTERVAL(CAST(help_topic_id AS SIGNED INTEGER)+ 0) DAY),'%Y-%m-%d') date_day
 FROM mysql.help_topic
 WHERE help_topic_id  < DAY(LAST_DAY('2022-12-01'))
 ORDER BY help_topic_id
) a
LEFT JOIN da_event_log AS del ON a.date_day = DATE_FORMAT(del.created_at, '%Y-%m-%d')
 AND del.created_at < DATE_ADD(DATE_FORMAT('2022-12-01', '%Y-%m-%d'), INTERVAL 1 MONTH)
 AND del.created_at >= '2022-12-01'
GROUP BY a.date_day

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/130719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【王道操作系统】1.1.1 操作系统的概念、功能和目标(系统资源的管理者、提供接口、作为扩充机器、虚拟机)

操作系统的概念、功能、目标(系统资源的管理者、提供接口、作为扩充机器) 文章目录操作系统的概念、功能、目标(系统资源的管理者、提供接口、作为扩充机器)1.常见的操作系统举例2.操作系统的层次结构3.操作系统的概念4.操作系统的功能和目标4.1 作为计算机系统资源的管理者4.2…

LeetCode题解 二叉树(七):222 完全二叉树的节点个数;110 平衡二叉树;257 二叉树的所有路径

前言 阳过之后&#xff0c;已经有一周多没有接触过一道题目了 从今日开始恢复每日一小时的刷题日常 二叉树 222 完全二叉树的节点个数 medium 无论是深度遍历&#xff08;前中后都好&#xff09;还是层序遍历&#xff0c;都可以用于求解这道题&#xff0c;只需要使用一个额…

【电力系统综合能源】“双碳“背景下|综合能源系统中的经济-二氧化碳排放协调最优调度和敏感性分析研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

2022年度回顾|在Jina AI社区连接、分享、共创

在 Jina AI 社区&#xff0c;每天都有来自世界各地的开发者加入&#xff0c;因技术产生连接&#xff0c;因连接带动分享&#xff0c;因分享促进共创。2022 的若干个闪亮的高光时刻&#xff0c;都有来自社区的支持和贡献&#xff1a;在春天&#xff0c;我们发布了 Jina 3.0&…

M1 ARM架构下, linux安装mysql的方式及潜在问题解决

下载: 1. 下载压缩包: 由于m1/m2芯片得使用aarch64架构, 所以普通的x86架构这里就完全无法使用了, 这里推荐在清华镜像网下载对应的aarch64版本: 安装包下载地址 2. Linux系统准备 默认的CentOS是自带mariadb, 和mysql的安装相冲突 , 所以需要提前删除 rpm -qa | grep mari…

Python 三种方法实现截图【详解+完整代码】

人生苦短 我用python 如何用python实现截屏&#xff1f; 一、方法一 PIL中的ImageGrab模块 使用PIL中的ImageGrab模块简单&#xff0c;但是效率有点低 PIL是Python Imaging Library&#xff0c; 它为python解释器提供图像编辑函数能力。 ImageGrab模块可用于将屏幕或剪贴板…

《Linux运维总结:Centos7.6部署redis6.2.8 cluster集群》

一、redis cluster集群规划 Centos7.6部署redis6.2.8 cluster集群资源包 环境信息如下&#xff1a; 主机IP操作系统Redis版本CPU架构端口角色192.168.1.191Centos7.66.2.8x86_647001master192.168.1.192Centos7.66.2.8x86_647002master192.168.1.193Centos7.66.2.8x86_647003m…

如何快速打造一个高权重的短视频账号?短视频运营推广日记(2)

之前做的短视频账号流量一直不好&#xff0c;终于狠下心来注销了&#xff0c;准备重新来过 趁现在账号注销期&#xff0c;好好了解一下短视频账号从0打造的内容&#xff0c;我赢的高权重账号打造内容反复阅读了9遍&#xff0c;终于总结出了属于自己的内容。 看过很多人说要养…

51. CPU和GPU

1. 你的GPU电脑 2. 提升CPU利用率的第一个方法 3. 样例分析 如果一个矩阵是按行存储&#xff0c;访问一行会比访问一列要快 CPU一次读取64字节&#xff08;缓存栈&#xff09;CPU会“聪明的”提前读取下一个&#xff08;缓存栈&#xff09; 4. 提升CPU利用率的第二个方法 高端…

字节一面:服务端挂了,客户端的 TCP 连接还在吗?

服务端进程崩溃&#xff0c;客户端会发生什么&#xff1f; TCP 的连接信息是由内核维护的&#xff0c;所以当服务端的进程崩溃后&#xff0c;内核需要回收该进程的所有 TCP 连接资源&#xff0c;于是内核会发送第一次挥手 FIN 报文&#xff0c;后续的挥手过程也都是在内核完成…

Linux 快照 (snapshot) 原理与实践(二) 快照功能实践

文章目录 0. 概要1. 准备演示数据2. 创建 snapshot-origin 目标3. 创建 snapshot 目标4. 验证 COW 操作4.1 第一次写数据4.2 第二次写数据5. 验证 ROW 操作5.1 第一次写数据5.2 第二次写数据6. 创建 snapshot-merge 目标7. 验证 merge 操作8. 后记0. 概要 上一篇《Linux 快照 …

【修改按钮的大小 Objective-C语言】

一、修改按钮的大小 1.还是上篇文章那个例子 点击加号的时候,使上面的图片按钮变大, 点击减号的时候,使上面的图片按钮变小 2.首先,需要给“加”按钮,注册单击事件 怎么办,拖线吧 右键点击这个列表中的“加”按钮,把这个按钮的Touch Up Inside右边的小圆圈,拖到Vi…

《计算机体系结构量化研究方法》附录B.1 B.2 缓存性能

一、缓存 1、基本知识 &#xff08;1&#xff09;缓存是指可以进行高速数据交换的存储器&#xff0c;它先于内存与CPU交换数据&#xff0c;因此速率很快。&#xff08;from百度&#xff09; &#xff08;2&#xff09;如果处理器在缓存中找到了所需求的数据项&#xff0c;那么…

java 瑞吉外卖优化day1 缓存短信验证 git分支开发 缓存套餐数据 SpringCache

缓存优化 我们将之前写的瑞吉项目push到gitee上&#xff0c;然后新建一个分支v1.0&#xff0c;在v1.0上进行优化&#xff0c;并且push上去 环境搭建 host跟ip都要写自己对应的 &#xff0c;如果没有设置密码 就不用写密码配置 新建RedisConfig配置类 控制不让key序列化&#xf…

springboot入门篇

SpringBoot 文档更新日志 版本更新日期操作描述v1.02021/11/14A基础篇 前言 ​ 很荣幸有机会能以这样的形式和互联网上的各位小伙伴一起学习交流技术课程&#xff0c;这次给大家带来的是Spring家族中比较重要的一门技术课程——SpringBoot。一句话介绍这个技术&#xff0c;应…

Android音乐播放器(高分课设)

实现功能&#xff1a; 1&#xff1a;启动动画&#xff08;运行程序出现一个2秒钟的视频&#xff09;&#xff0c;2秒钟后进入下一界面&#xff01; 2&#xff1a;登录注册&#xff08;账号和密码采用了MD5Utile加密&#xff09;&#xff0c;输入正确的账号和密码进入主界面&a…

新的一年嘚拥有新的壁纸了,python批量采集高清壁纸

前言 大家早好、午好、晚好吖 ❤ ~ 新的一年不得需要新的壁纸&#xff1f;今天我们就来采集一下 环境使用: Python 3.8 解释器 Pycharm 编辑器 第三方模块 import requests >>> pip install requests 如何安装python第三方模块: win R 输入 cmd 点击确定, 输入…

ubuntu 20.04 安装谷歌输入法

目标&#xff1a; 快速安装谷歌输入法 步骤&#xff1a; 安装fcitx-googlepinyin&#xff1a; sudo apt-get install fcitx-googlepinyin 在应用程序里的语言支持中配置language support&#xff1a; 点开语言支持后会提示未完全安装&#xff0c;点击完整安装&#xff1a;…

java线程池理解及底层

并发线程池示例&#xff08;两个示例程序分别用线程 及java自带程池执行一样的程序查看时间&#xff09;&#xff1a; public class ThreadTest {public static void main(String[] args) throws InterruptedException {Long start System.currentTimeMillis();final Random …

一个java短网址转换项目,亲测可用

亲测可用 项目介绍的比较详细,我就不复制粘贴了,直接看项目介绍即可 启动项目后先拿注册账户,登陆,然后创建应用,然后新增短域即可