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

相关推荐

  • raid0 raid1 raid5 raid6 raid10的优缺点和做各自raid需要几块硬盘[通俗易懂]

    raid0 raid1 raid5 raid6 raid10的优缺点和做各自raid需要几块硬盘[通俗易懂]一、Raid0:一块硬盘或者以上就可做raid0优势:数据读取写入最快,最大优势提高硬盘容量,比如3块80G的硬盘做raid0可用总容量为240G。速度是一样。缺点:无冗余能力,一块硬盘损坏,数据全无。建议:做raid0可以提供更好的容量以及性能,推荐对数据安全性要求不高的使用。二、Raid1:至少2快硬盘可做raid1优势:镜像,数据安全强,2快硬盘做raid一块正常运行,另外一块镜像备份数据,保障数据的安全。一块坏了,另外一块硬盘也有完整的数据,保障运行。缺…

  • Linux安装tomcat,配置环境变量

    Linux安装tomcat,配置环境变量一、安装tomcat需要先配置jdk,所以没有配置jdk同学,先移步Linux安装JDK二、卸载tomcat检查linux是否安装tomcatrpm-qa|greptomcat查看下系统信息,确认是32位还是64位:uname-a输入rpm-qa|greptomcat如果有通过rpm-e`rpm-qa|greptomcat`(或rpm-e加上面rpm…

  • 内测体验:JetBrains面向未来的Fleet编辑器是什么+究竟怎样 使用初体验+与vsc对比

    内测体验:JetBrains面向未来的Fleet编辑器是什么+究竟怎样 使用初体验+与vsc对比引言上个月,我在看到某公众号推广后,作为热衷于先进技术、常年游历于各个软件公司内测组的用户自然是早早申请了内测。因为在申请时官网的公告是“我们也不知道新一代编辑器(Fleet)什么时候可以与大家见面”,因此我也没有过多在意。令人意外的是,昨天晚上22:09,我收到了来自JetBrains的邮件。此处点名一下GitHubCopilot项目,申请完了这么久还不给个信[手动旺柴]简介如果你实在不知道什么是JetBrains,那你也应该知道PyCharm,再次也要知道AndroidStudio。

  • MySQLdump的参数详解大全

    MySQLdump的参数详解大全

  • 示波器表笔旁边的夹子是什么_示波器的基础操作,初学者必看教程「建议收藏」

    示波器表笔旁边的夹子是什么_示波器的基础操作,初学者必看教程「建议收藏」正确接地在设置测量或处理电路时,正确地接地是一个重要步骤。示波器正确接地可以防止用户受到电击,用户正确接地可以防止电路受到损坏。示波器接地意味着把示波器连接到电器中性的参考点上,如接地。把示波器三头电源线查到连接接地装置的插座上,实现示波器接地。示波器接地对人身安全是必需的。如果高压接触没有接地的示波器机箱,不管是机箱的哪个部分,包括视乎已经绝缘的旋钮,都会发送电击。而在示波器正确接地时,电流会通…

发表回复

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

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