基于日期(字段总数)检索数据的MySQL查询

基于日期(字段总数)检索数据的MySQL查询,mysql,Mysql,我是MySQL新手,请耐心等待: 我有一个表,我想在其中检索基于日期的数据并进行求和 这是我的桌子 client datescanned problem title abc 2019-02-02 12345a High xyz abc 2019-02-02 12345b High xyz abc 2019-02-02 12345c High xyz

我是MySQL新手,请耐心等待:

我有一个表,我想在其中检索基于日期的数据并进行求和

这是我的桌子

client    datescanned  problem   title
 abc      2019-02-02    12345a         High      xyz
 abc      2019-02-02    12345b         High      xyz 
 abc      2019-02-02    12345c         High      xyz
 abc      2019-02-02    12345d         Medium    xyz
 abc      2019-02-09    12345e         High      xyz 
 abc      2019-02-09    12345f         High      xyz
 abc      2019-02-09    12345g         Low       xyz
 abc      2019-02-09    12345h         Low       xyz
 abc      2019-02-09    12345j         Low       xyz
 abc      2019-02-16    12345x         High      xyz
 abc      2019-02-16    12345s         High      xyz
 abc      2019-02-16    12345w         High      xyz
 abc      2019-02-16    12345bs        Medium    xyz
我期望的输出是

 client   datescanned  problem         High   Medium   Low 
 abc      2019-02-02    12345x          3       1       0
 abc      2019-02-09    12345s          2       0       3
 abc      2019-02-16    12345w          3       1       0 
这是我的密码

select client,datescanned, problem, severity, 

         count(case when severity = 'High' then 1 end) as High,
         count(case when severity = 'Medium' then 1 end) as Medium,
         count(case when severity = 'Low' then 1 end) as Low

 from ssstest where client = "myuser"
 group by client,datescanned, problem
这将获取所有的数字正确,但我想总结高,中,低每个日期

现在我明白了

client    datescanned  problem   severity      High  Medium  Low
 abc      2019-02-02    12345a      High        1      0      0
 abc      2019-02-02    12345b      High        1      0      0
 abc      2019-02-02    12345c      High        1      0      0 
 abc      2019-02-02    12345d      Medium      0      1      0 
 abc      2019-02-09    12345e      High        1      0      0 
 abc      2019-02-09    12345f      High        1      0      0 
 abc      2019-02-09    12345g      Low         0      0      1
 abc      2019-02-09    12345h      Low         0      0      1
 abc      2019-02-09    12345j      Low         0      0      1
 abc      2019-02-16    12345x      High        1      0      0
 abc      2019-02-16    12345s      High        1      0      0
 abc      2019-02-16    12345w      High        1      0      0
 abc      2019-02-16    12345bs     Medium      0      1      0 
所以基本上,我只想把高、中、低的数据加起来,把同一个日期分组为一个

 client   datescanned  problem         High   Medium   Low 
 abc      2019-02-02    12345x          3       1       0
 abc      2019-02-09    12345s          2       0       3
 abc      2019-02-16    12345w          3       1       0 
再次感谢你的帮助

您可以尝试使用条件聚合

更新1:

在MySQL/MariaDB查询中,以下内容没有多大意义:

=%当前用户登录%

如果要搜索的子字符串是当前用户登录,则使用 像“%CURRENT\u USER\u LOGIN%”

选择客户端、添加日期、计算机名称、严重性、, countcase严重性为“高”时,则1结束为高, countcase严重性为“中等”时,则1结束为中等, -逗号标记“,”在“from”之前!!!产生误差 countcase严重性为低时,则1结束为低, 来自mytable,其中客户端=%CURRENT\u USER\u LOGIN% 按客户端、添加日期、计算机名称分组
>1064-您的SQL语法有错误;查看与您的MariaDB服务器版本相对应的手册,以了解要使用的正确语法,例如第5行的“从mytable(如“%CURRENT\u USER\u LOGIN%”客户端分组,dateadded,computerna:@enkiki,您可以立即查看谢谢您的帮助。。还是同一个错误,我删除了这3行计数,以查看错误是否来自第1、5、6行。。我可以看到桌子。我怀疑第2,3,4行有什么东西。。。我直接在Navicat查询中运行了代码,但也出现了错误,将当前用户的登录名替换为我的实际用户名。代码已更新,您的代码正在通过删除高中后的逗号来工作。。。只缺少按日期分组的组。。。请参阅更新的问题/代码。。谢谢!现在工作,我从组中删除了computername:
select client,dateadded, computername, severity, 
       count(case when severity='High' then 1 end) as High,
       count(case when severity='Medium' then 1 end) as Medium,
       count(case when severity='Low' then 1 end) as Low,
from mytable where client =%CURRENT_USER_LOGIN%
group by client,dateadded, computername