MySql Povit_MySQL pivot row成动态列数「建议收藏」

MySql Povit_MySQL pivot row成动态列数「建议收藏」杨魅力不幸的是,MySQL没有PIVOT基本上你想要做的功能。因此,您需要使用带有CASE语句的聚合函数:selectpt.partner_name,count(casewhenpd.product_name=’ProductA’THEN1END)ProductA,count(casewhenpd.product_name=’ProductB’THEN1…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

c63f111078a805ab7d2a9f587e769298.png

杨魅力

不幸的是,MySQL没有PIVOT基本上你想要做的功能。因此,您需要使用带有CASE语句的聚合函数:select pt.partner_name,

  count(case when pd.product_name = ‘Product A’ THEN 1 END) ProductA,

  count(case when pd.product_name = ‘Product B’ THEN 1 END) ProductB,

  count(case when pd.product_name = ‘Product C’ THEN 1 END) ProductC,

  count(case when pd.product_name = ‘Product D’ THEN 1 END) ProductD,

  count(case when pd.product_name = ‘Product E’ THEN 1 END) ProductEfrom partners ptleft join sales s  

  on pt.part_id = s.partner_idleft join products pd  on s.product_id = pd.prod_idgroup by pt.partner_name请参阅SQL Fiddle with Demo由于您不了解产品,因此您可能希望动态执行此操作。这可以使用预先准备的语句来完成。动态数据透视表(将行转换为列)您的代码如下所示:SET @sql = NULL;SELECT

  GROUP_CONCAT(DISTINCT

    CONCAT(

      ‘count(case when Product_Name = ”’,

      Product_Name,

      ”’ then 1 end) AS ‘,

      replace(Product_Name, ‘ ‘, ”)

    )

  ) INTO @sqlfrom products;SET @sql = CONCAT(‘SELECT pt.partner_name, ‘, @sql, ‘ from partners pt

left join sales s

  on pt.part_id = s.partner_id

left join products pd

  on s.product_id = pd.prod_id

group by pt.partner_name’);PREPARE stmt FROM @sql;EXECUTE stmt;DEALLOCATE PREPARE stmt;请参阅SQL Fiddle with Demo值得注意的GROUP_CONCAT是,默认情况下限制为1024字节。您可以通过在程序持续时间内将其设置得更高来解决此问题,即。SET @@group_concat_max_len = 32000;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/227651.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • native2ascii命令_native method

    native2ascii命令_native methodnative2ascii是一个关于转码的不错的命令.使用条件简单,只要安装了jdk之后,在cmd窗口就可以使用该命令对文件进行转码,而且转码过程是可逆的.安装路径下bin目录下,有一个native2ascii 批处理文件也可以完成转码.具体的语法如下:native2ascii-[options][inputfile[outputfile]]-[options]:表示命令开关,

  • pycharm:系统找不到指定文件[通俗易懂]

    pycharm:系统找不到指定文件[通俗易懂]解决办法:打开你的项目里面有一个idea文件→找到idea文件下的workspace.xml文件,修改name=”SDK_HOME”,这一行的value→将它的路径修改为Python安装包的路径

  • 升降压电路的工作原理

    升降压电路的工作原理1.升压电路也叫自举电路,是利用自举升压二极管,自举升压电容等电子元件,使电容放电电压和电源电压叠加,从而使电压升高,有的电路升高的电压能达到数倍电源电压。开关直流升压电路(即所谓的boost或者step-up电路)原理,theboostconverter,或者叫step-upconverter,是一种开关直流升压电路,它可以是输出电压比输入电压高。基本电路图如图所示假定那个开关(三极管或者mos管)已经断开了很长时间,所有的元件都处于理想状态,电容电压等于输入电压。下面要分充电和放电两个部分来

  • zen cart template zencart模板修改[通俗易懂]

    zen cart template zencart模板修改[通俗易懂]encarttemplatezencart模板修改byZENCART模板 | postacomment下面简单的介绍下zencart网站模板的修改。修改较多的地方:(常用代码)一:头部文件为(例子):D:AppServwwwzencart12698includestemplatestheme3common–tpl_header.php1.

  • python识别文字位置_如何利用Python识别图片中的文字

    python识别文字位置_如何利用Python识别图片中的文字一、前言不知道大家有没有遇到过这样的问题,就是在某个软件或者某个网页里面有一篇文章,你非常喜欢,但是不能复制。或者像百度文档一样,只能复制一部分,这个时候我们就会选择截图保存。但是当我们想用到里面的文字时,还是要一个字一个字打出来。那么我们能不能直接识别图片中的文字呢?答案是肯定的。二、Tesseract文字识别是ORC的一部分内容,ORC的意思是光学字符识别,通俗讲就是文字识别。Tesserac…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号