首页
学习
活动
专区
圈层
工具
发布

下拉式
EN

Stack Overflow用户
提问于 2017-08-28 10:12:35
回答 2查看 558关注 0票数 0

我想在使用rollup时将名字列和姓列组合起来,但它似乎将相同的姓氏复制到每个名字上:

代码语言:javascript
复制
SELECT IFNULL(CONCAT(u.firstname, ' ', u.lastname),'Total Projects') AS Name, count(DISTINCT(p.id) ) AS Total
FROM projects p
INNER JOIN users u ON p.creator_fk = u.id
GROUP BY Name WITH ROLLUP;

所以我的结局是:

代码语言:javascript
复制
Name           | Total

John Smith     | 10
Sarah Smith    | 25
Tracy Smith    | 5
Total Projects | 40
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-28 10:26:24

根据我的理解

代码语言:javascript
复制
SELECT IFNULL(name,'Total Projects') AS Name, count(DISTINCT(id)) AS Total 
from  (select CONCAT(u.firstname,' ', u.lastname) as name,p.id
    FROM projects p INNER JOIN users u ON p.creator_fk = u.id) as p  GROUP BY name WITH ROLLUP;
票数 1
EN

Stack Overflow用户

发布于 2022-09-27 20:30:54

这就是我能够在不重复结果表中的条目的情况下将名字和姓氏连接起来的原因。

代码语言:javascript
复制
SELECT
  COALESCE(name, 'TOTAL') as name,
  COUNT(ticket_number) as tickets
FROM
  ( SELECT
      CONCAT(emp_last, ', ', emp_first) as name, ticket_number
    FROM
      project_tickets_table
    LEFT OUTER JOIN
      employees ON project_tickets_table.emp=employees.empl_id
    WHERE
      status in ('ACTI', 'ASSG') ) as p
GROUP BY ROLLUP (name)
ORDER BY cases DESC

注意,as p部件是必需的,但在本例中什么也不做。只要包含p,就可以将as something更改为任何您想要的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45916633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档