分组方式:Mysql 8

分组方式:Mysql 8,mysql,group-by,Mysql,Group By,我是一个非IT人员,在一家小公司工作(10人)。我的工作之一是收集数据并向我们的团队报告。话虽如此,我还是使用了MySQL。多年来,我构建了各种查询来提取数据。我最近将我们的服务器升级到了版本8。在版本8中,“分组依据”规则的执行更加严格。我正在尽力重写一些违反规则的查询。然而,在理解如何重写查询时,我正在苦苦挣扎,需要帮助 以下是一个例子: SELECT Manager, calldate_final as 'Call Date', putdate_final as 'Put Da

我是一个非IT人员,在一家小公司工作(10人)。我的工作之一是收集数据并向我们的团队报告。话虽如此,我还是使用了
MySQL
。多年来,我构建了各种查询来提取数据。我最近将我们的服务器升级到了版本8。在版本8中,“分组依据”规则的执行更加严格。我正在尽力重写一些违反规则的查询。然而,在理解如何重写查询时,我正在苦苦挣扎,需要帮助

以下是一个例子:

SELECT
  Manager,
  calldate_final as 'Call Date',
  putdate_final as 'Put Date', 
  concat('<a target="_blank" href="fi_details_by_security.php?manager=',frm.fi_details.manager,'&date=',frm.fi_details.MaturityDate_Final,'">',
  frm.fi_details.MaturityDate_Final,'<a/>') AS 'Maturity Date', 
  PortfolioCode as 'Portfolio',
  concat('$',format(sum(parvalue),0)) as 'Total Par Value', 
  count(parvalue) as 'Number of Maturities'
FROM frm.fi_details
WHERE Manager = WhereManager AND YEAR(MaturityDate_Final) = year(now())
GROUP BY portfoliocode, MaturityDate_Final
ORDER BY maturitydate_final, portfoliocode;
选择
经理
calldate_final作为“通话日期”,
putdate_final为“Put Date”,

concat(“

当您混合普通列(如“Manager”或“concat”)时('更改实际上是在5.7中推出的,因此您的更新似乎跳过了几个版本。您可能有其他不同的行为。您需要查看以前版本和当前版本之间的每个版本的发行说明。我们使用的是5.7,但安装基础是Bitnami的一部分。这次我们分别安装每个组件y、 我猜Bitnami通过强制措施禁用了这个组。
SELECT
  Manager,
  calldate_final as 'Call Date',
  putdate_final as 'Put Date', 
  concat('<a target="_blank" href="fi_details_by_security.php?manager=',frm.fi_details.manager,'&date=',frm.fi_details.MaturityDate_Final,'">',
  frm.fi_details.MaturityDate_Final,'<a/>') AS 'Maturity Date', 
  PortfolioCode as 'Portfolio',
  concat('$',format(sum(parvalue),0)) as 'Total Par Value', 
  count(parvalue) as 'Number of Maturities'
FROM frm.fi_details
WHERE Manager = WhereManager AND YEAR(MaturityDate_Final) = year(now())
GROUP BY Manager, calldate_final, `Maturity Date`, PortfolioCode
ORDER BY maturitydate_final, portfoliocode;