当前位置: 首页 > 面试题库 >

SQL选择分组依据和字符串concat

巫马劲
2023-03-14
问题内容

我有这样的桌子

ID  NAME    Amount
1   cal     100
2   cal     200
3   cal     300
4   cal     400
1   ser     500
2   ser     600
5   ser     700

我想写一个选择查询,这样我就可以得到这样的结果

ID  NAME            Amount
1   cal and ser     600
2   cal and ser     800
3   cal             300
4   cal             400
5   ser             700

在这里,我需要按ID和数量总和进行分组,并用相同的ID和Differentnet名称连接字符串名称


问题答案:

这将与sql-server 2008一起使用

SELECT p1.ID,
       ( SELECT NAME + ' and ' 
           FROM YourTable  p2
          WHERE p2.ID = p1.ID
          ORDER BY NAME
            FOR XML PATH('') ) AS Name,
        sum(Amount)
      FROM YourTable p1
      GROUP BY ID ;


 类似资料:
  • 我正在使用SQLServer2008,我想知道我是否可以在一个select语句中完成查询,而不需要子查询。 如果记录中的某个字段在最近10个创建的记录中为true,我想将变量设置为true,如果该字段在最近10个记录中为true,则变量为true,如果为false,则变量为false,如果记录总数小于10,则变量也为false。 我的问题是,要获取最新创建的10条记录,我需要通过降序对用户进行排序

  • 问题内容: 我想为站点seo写一个比较过程(t-sql)。 我有一个表,其中包含字段url的一部分的字段“ url”(nvarchar())。例如:“ _mysyte.com/?id=2_ ”。每个URL的此表还包含我需要提取的元数据。 主要问题是网站上的完整url看起来像是“ _mysyte.com/?id=2®ion=0 &page=1_ ”,我只需要忽略一切,除了表中的url: 我的意思是:

  • 问题内容: 我有一张标签表,想从列表中获得计数最高的标签。 样本数据如下所示 使用 让我得到正在寻找的完美数据。但是,我想对它进行组织,以使最高的标签数排在首位,并限制它仅向我发送前20个左右。 我试过了 而且我不断收到“组功能的无效使用-ErrNr 1111” 我究竟做错了什么? 我正在使用MySQL 4.1.25-Debian 问题答案: 在所有版本的MySQL中,只需在SELECT列表中为聚

  • 假设我有一个有2列的表:name和number。Name是一个字符串,可以有一个或多个单词,我想要一个新的查询选择名称编号,但在Name列,它只有最长的词,原来的表。 SQL中是否有一个函数只从字符串中提取最长的单词?

  • 问题内容: 我有两个带有以下字段的表 我需要编写一个查询,其中提供了雇员的详细信息,雇员获得加薪的次数,最大加薪金额的值以及该加薪的日期。这是我到目前为止所拥有的: 除了授予最高增加额的日期外,这正确地给出了所有要求。我尝试了以下方法,但均未成功: 这给出了错误“组功能的无效使用”。有人知道我在做什么错吗? 问题答案: 您不能在where子句中执行此操作,无论是在联接条件下使用还是在联接条件下执行

  • 问题内容: 目标是用数字表示的char值替换SQL查询中返回的整数值。例如: 标记为“端口”的表属性定义为1-4之间的整数。1 =篮球,2 =曲棍球,等等。下面是数据库表,然后是所需的输出。 数据库表: 所需的输出: 将这些整数值转换为String值的最佳实践是什么?在传递给程序之前使用SQL转换值?使用脚本语言来更改程序中的值?更改数据库设计? 问题答案: 数据库应该保存这些值,并且您应该执行连