gpt4 book ai didi

mysql - 是否可以显示空白而不是重复的行单元格信息?

转载 作者:可可西里 更新时间:2023-11-01 08:38:34 24 4
gpt4 key购买 nike

我有一份按特定 ID 分组的报告,这意味着某些信息必然是重复的。在这种情况下,每个引用号都有多个与之关联的专利记录。因此,如果有 4 项专利,它会正确返回 4 行,但引用 ID、提交日期和标题将在所有 4 行上重复,而其他列显示唯一信息。

是否可以在第 2-4 行返回空白,以便我只看到一次“公共(public)”信息?

这是我目前看到的。

Reference-1    July 1, 2019    Title here    Acme, Inc.    ABCD-1234  Patent 1
Reference-1 July 1, 2019 Title here Acme, Inc. ABCD-1234 Patent 2
Reference-1 July 1, 2019 Title here Acme, Inc. ABCD-1234 Patent 3
Reference-1 July 1, 2019 Title here Acme, Inc. ABCD-1234 Patent 4

是否可以让它返回这个?我想要返回相同的行,只是没有重复的值。

 Reference-1    July 1, 2019    Title here    Acme, Inc.    ABCD-1234  Patent 1
Patent 2
Patent 3
Patent 4

这是我的代码的当前版本:

SELECT
i.reference_id AS "Reference Number",
i.submission_dt AS "Submission Date",
i.title AS "Title",
o.name AS "Sponsor",
o.grant_number AS "Grant Number",
p.patent_id AS "IP Reference"


FROM
invention i
LEFT OUTER JOIN
organization2invention o2i ON o2i.invention_id = i.invention_id
LEFT OUTER JOIN
organization o ON o2i.organization_id = o.organization_id
LEFT OUTER JOIN
patent2invention pt2i ON pt2i.invention_id = i.invention_id
LEFT OUTER JOIN
patent p ON pt2i.patent_id = p.patent_id


WHERE
o.grant_number = "ABCD-1234"

group by p.patent_id
order by i.reference_id

ETA:在这个例子中,专利 3 和专利 4 之间的标题永远不会改变。除了专利列之外的所有列都被链接并保持不变。

然而,Reference-2 可能还有另一组记录,我希望所有字段都显示 Reference-2 第一次出现的时间,但其他时间不显示。

Reference-1    July 1, 2019    Title here    Acme, Inc.    ABCD-1234  Patent 1
Patent 2
Patent 3
Patent 4

Reference-2 July 1, 2019 Title here Acme, Inc. ABCD-1234 Patent 5
Patent 6
Patent 7
Patent 8

版本 5.7.22

ETA2:我正在使用非常糟糕的用户界面从基于网络/云的数据库中提取数据。他们构建了一个页面,该页面有一个用于 MySQL 代码的输入框和一个显示“运行查询”的按钮,例如他们的界面没有按照我们需要的方式提供数据。我只有只读权限,它们的显示不能识别某些东西(如 \n),并且它有一些内置的格式标签(类似于 my_object_id AS "My Object| display_name:MyObject").

当我单击“运行查询”时,网页的底部返回显示。

此功能旨在用作“自定义报告”,因此显示很重要。除了直接使用 MySQL 代码之外,他们只是没有给我提供执行此操作的方法。

最佳答案

This answer will not output perfect layout because layout is not something SQL is built to deal with. As stated by Strawberry - "consider handling issues of data display in application code instead"

...

操作状态:

I'm limited to a text input box for mysql code with read only access to the data.

所以 MySQL View 是不可能的,显示输出处理器(PHP 等)可能对结果进行整理是一个未知变量。

OP 还指出:

All of the columns except for the Patent column are linked and would remain the same

所以;

尝试扭转问题;您想要一个包含大量专利 数据迭代的完整 结果。你可以这样做 using GROUP_CONCAT在更改列上,patent_id 列。您还必须选择引用列的 DISTINCT 值,但是为获得所需结果而进行的 SQL SELECT 编辑相当少:

SELECT
DISTINCT i.reference_id AS "Reference Number",
i.submission_dt AS "Submission Date",
i.title AS "Title",
o.name AS "Sponsor",
o.grant_number AS "Grant Number",
GROUP_CONCAT(p.patent_id SEPARATOR '\\n') AS "IP Reference"

FROM
invention i
LEFT OUTER JOIN
organization2invention o2i ON o2i.invention_id = i.invention_id
LEFT OUTER JOIN
organization o ON o2i.organization_id = o.organization_id
LEFT OUTER JOIN
patent2invention pt2i ON pt2i.invention_id = i.invention_id
LEFT OUTER JOIN
patent p ON pt2i.patent_id = p.patent_id

WHERE
o.grant_number = "ABCD-1234"

GROUP BY i.reference_id,
ORDER BY i.reference_id

这将导致一组包含“引用 1”的行,例如,所有不同的 p.patent_id 值的 GROUP CONCAT 与之关联引用,在本例中由换行符分隔。

\n 是一个标准的换行符(在 MySQL 中转义为 \\n)。您可以根据需要调整此 SEPERATOR

您没有给我们任何关于您的显示机制的线索,但是可能您可以插入任何您喜欢的东西,甚至是 HTML 到 SEPERATOR 子句中;如果您要输出到 HTML 表格中。

  GROUP_CONCAT(p.patent_id SEPARATOR 
'</td></tr><tr><td colspan="5">&nbsp;</td><td>') AS "IP Reference"

您还可以使用 DISTINCT 子句从专利列表中删除重复项。

Reference

输出:

Reference-1  July 1, 2019  Title here  Acme, Inc.  ABCD-1234  Patent 1
Patent 2
Patent 3
Patent 4

Reference-2 July 1, 2019 Title here Acme, Inc. ABCD-1234 Patent 5
Patent 6
Patent 7
Patent 8

关于mysql - 是否可以显示空白而不是重复的行单元格信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56839163/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com