RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题

问题[sql]

Martin Hope
Steven Kirke
Asked: 2025-04-14 20:35:57 +0000 UTC

如何从多个 XML 节点获取特定值到一个字段中

  • 6

存在一个包含两个或多个值的结构。告诉我如何将两个节点的值放入一个字段中。从具有相同 boss_type_id 的节点,在一列中输出 person_fullname --> 经理 1,经理 2

XML 表。表格示例取自用户Yitzhak Khabinsky的回答

在 SQL 中使用 XML 的示例有很多(这个问题就在那里)在 MS SQL 中使用 XML 字段的实用指南

DECLARE @tbl TABLE (id BIGINT IDENTITY PRIMARY KEY, xmldata XML);
INSERT INTO @tbl (xmldata) VALUES
(N'<career_reserve SPXML-FORM="x-local://career_reserve.xmd">
    <tutors>
        <tutor>
            <person_position_name>Руководитель</person_position_name>
            <boss_type_id>7337741311213725357</boss_type_id>
        </tutor>
        <tutor>
            <person_position_name>Менеджер 1</person_position_name>
            <boss_type_id>6243324114636993778</boss_type_id>
        </tutor>
        <tutor>
            <person_position_name>Менеджер 2</person_position_name>
            <boss_type_id>6243324114636993778</boss_type_id>
        </tutor>
    </tutors>
</career_reserve>'),
(N'<career_reserve SPXML-FORM="x-local://career_reserve.xmd">
    <tutors>
        <tutor>
            <person_position_name>Менеджер 2</person_position_name>
            <boss_type_id>6243324114636993778</boss_type_id>
        </tutor>
    </tutors>
</career_reserve>');

查询表。

DECLARE 
     @boss_type_id BIGINT = 7337741311213725357
    ,@hrbr_type_id BIGINT = 6243324114636993778

SELECT 
         b.tutor_boss.value('(person_position_name/text())[1]', 'VARCHAR(MAX)') AS boss_fullname
        ,b.tutor_boss.value('(person_position_name/text())[1]', 'VARCHAR(MAX)') AS boss_position_name
    FROM @tbl
        CROSS APPLY xmldata.nodes('/career_reserve/tutors/tutor[boss_type_id/text()=sql:variable("@boss_type_id")]') AS b(tutor_boss)
        CROSS APPLY xmldata.nodes('/career_reserve/tutors/tutor[boss_type_id/text()=sql:variable("@hrbr_type_id")]') AS hr(tutor_hrbr)
    WHERE xmldata.exist('/career_reserve/tutors/tutor/boss_type_id[text()=sql:variable("@boss_type_id")]') = 1
        AND xmldata.exist('/career_reserve/tutors/tutor/boss_type_id[text()=sql:variable("@hrbr_type_id")]') = 1
sql
  • 1 个回答
  • 48 Views
Martin Hope
user698894
Asked: 2025-04-06 18:46:29 +0000 UTC

分组和计数

  • 6

有一张表 TableName:

id   a        b       brand
1   001      zyb      apl
2   002      yan      apl
3   002      pit      ggl
4   101      zyb      ggl
5   003      zyb      ggl
6   102      yan      apl
7   002      pit      msf 

结果:

 a        b       brand   c
001      zyb      apl     2
002      yan      apl     2
002      pit      ggl     2
003      zyb      ggl     2
002      pit      msf     1 
SELECT
    a,
    b,
    brand,
    COUNT(brand) AS c
FROM
    TableName
WHERE
    a REGEXP '^00'
ORDER BY
    c ASC

我收到此错误:

这与 sql_mode=only_full_group_by 不兼容

sql
  • 2 个回答
  • 87 Views
Martin Hope
Lemniscata
Asked: 2025-03-25 14:03:16 +0000 UTC

该查询将返回有史以来购买金额最大的客户的姓名。

  • 5

实际上,我引用了任务条件:在 PostgreSQL 中编写一个查询,该查询将显示有史以来购买金额最大的买家的姓名(一个订单中可能有几种不同的产品)。该任务的数据库由三个表组成:

  1. 买家 - 买家:包含字段buyer_id(主键)、name、city
  2. 产品 - 产品:product_id(主键)、product_name、price
  3. 订单 - 订单:order_id(主键)、order_date、buyer_id(外键)、product_id(主键)、数量

数据库和查询的模型:https://onecompiler.com/postgresql/43csjz2v6 模型似乎显示正确,但测试不接受问题的解决方案。也曾经怀疑过自己没有理解清楚条件,并不是对用户所有购买进行求和,而是找出最“贵”的购买,但是这也没有起到作用。我做错什么了?

原始请求代码:

  WITH total AS (
  SELECT buyers.buyer_id, buyers.name, SUM(orders.quantity * products.price) AS total_order
  FROM buyers
  INNER JOIN orders ON orders.buyer_id = buyers.buyer_id
  INNER JOIN products ON products.product_id = orders.product_id
  GROUP BY buyers.buyer_id, orders.order_id)
SELECT name FROM (
  SELECT name, SUM(total_order) AS sum_bought FROM total
  GROUP BY buyer_id, name) AS max_bought
ORDER BY sum_bought DESC LIMIT 1
sql
  • 1 个回答
  • 16 Views
Martin Hope
Saint
Asked: 2025-03-12 16:10:26 +0000 UTC

我可以在 RECURSIVE CTE 中拥有多个 UNION 吗?

  • 5

该模型的示例如下:

WITH RECURSIVE test_data (id, p_id) AS (
       VALUES
      (1, NULL),
      (2, 1),
      (3, 1),
      (4, 3),
      (5, 4),
      (6, null),
      (7, null)
),
 r (id) AS (
   SELECT id FROM test_data WHERE id = 3
   UNION
   SELECT td.id FROM r JOIN test_data td ON r.id = td.p_id
   UNION
   SELECT td.p_id FROM r JOIN test_data td ON r.id = td.id
 )
SELECT * FROM r;

在这种情况下,我希望查询不仅在搜索后代的方向上扩展(第一个递归部分),而且还在搜索父母的方向上扩展(第二个递归部分)。分别地,两个递归部分都起作用(如果你注释掉第二个部分)。但它们结合在一起会出现错误:

[42P19] 错误:对查询“r”的递归引用不得出现在其非递归项中

有没有办法在递归 CTE 中使用两个 UNION,或者这是严格禁止的并且没有解决方法?

sql
  • 1 个回答
  • 19 Views
Martin Hope
amarok36
Asked: 2025-03-09 17:04:15 +0000 UTC

每周在 DB2 数据库上执行 SQL 查询

  • 5

有人面临每周在 DB2 数据库上运行 SQL 查询的任务吗?也许有使用数据库本身来解决这个问题的方法?

目前,我唯一的想法是编写一个 bash 脚本并将其执行分配给 Cron 任务调度程序。操作系统 Red Hat Linux。

sql
  • 1 个回答
  • 21 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5