标签: group-by

MySQL代码显示基于另一个...的特定行?

我很难弄清楚如何做到这一点,我无法很好地解释它。由于我不知道如何解释,我似乎无法通过简单的研究在网上找到答案。所以,我必须把它画出来并寻求帮助。以下是详细信息:

示例列:我的原始 SQL 查询创建了此表(特定于此问题的数据来自一个巨大的表)

示例代码:

SELECT 
inventory .01 as  `Item#`, 
inventory .02 as `warehouse`, 
inventory .03 as `qty`, 
inventory .04 as `price`, 
inventory .05 as `weight`, 
inventory .06 as `other`
FROM
Inventory
WHERE
Inventory.other = 5
Run Code Online (Sandbox Code Playgroud)

返回这个:

Item# | warehouse | qty | price | weight | other
1           1        1      3        4       5
1           2        6      3        4       5
1           3        3      3        4       5
Run Code Online (Sandbox Code Playgroud)

我使用 group by 重写了表,使数据看起来像这样:

SELECT 
inventory .01 as  `Item#`, 
inventory .03 as `qty (whse1)`, …
Run Code Online (Sandbox Code Playgroud)

mysql group-by

0
推荐指数
1
解决办法
231
查看次数

为什么我会收到错误消息“'<列名>' 必须出现在 GROUP BY 子句中或用于聚合函数中”?

我哪里错了?为什么在添加 MAX 函数时会收到该消息?

查询涉及:

WITH
   references_cve AS (
      SELECT vulnerability_id, reference
      FROM dim_vulnerability_reference
      WHERE dim_vulnerability_reference.source = 'NVD'
   )
SELECT DISTINCT ON (
      da.ip_address,
      favi.port,
      dv.severity,dp.name, dv.title,
      dv.description,
      fix,
      dv.nexpose_id,
      cve.reference,
      da.host_name,
      dos.description,
      da.last_assessed_for_vulnerabilities,
      davbs.solution_id
   )
   da.ip_address AS IPAddress,
   CASE WHEN favi.port = -1 THEN NULL ELSE favi.port END AS Port,
   dv.severity AS Severity,
   dp.name AS Protocol,
   dv.title AS VulnerabilityName,
   htmlToText(dv.description) AS Summary,
   htmlToText(dv.description) AS Description,
   htmlToText(fix) as Solution,
   'https://www.rapid7.com/db/vulnerabilities/' || dv.nexpose_id as SeeAlso,
   dv.nexpose_id AS NexposeID,
   ''||null as PluginOutput,
   cve.reference …
Run Code Online (Sandbox Code Playgroud)

postgresql group-by errors

0
推荐指数
1
解决办法
579
查看次数

Have 和 Group By 子句

我昨天遇到了这个问题。我只是在寻找一个解释。

\n

以下关于 SQL 查询的哪些说法是正确的?

\n

P : SQL 查询可以包含 HAVING 子句,即使它没有 GROUP BY 子句

\n

问:只有当 SQL 查询具有 GROUP BY 子句时,它才可以包含 HAVING 子句

\n

R :GROUP BY 子句中使用的所有属性必须出现在 SELECT 子句中

\n

S :并非 GROUP BY 子句中使用的所有属性都需要出现在 SELECT 子句中

\n

(A)\xc2\xa0P 和 R。
\n(B)\xc2\xa0P 和 S。
\n(C)\xc2\xa0Q 和 R。
\n(D)\xc2\xa0Q 和 S。

\n

我选择了A作为答案。但实际上B是正确答案。

\n

我想知道有些网站说R是正确的,而另一些网站说S是正确的。最后两者之间哪种说法是正确的?

\n

group-by

0
推荐指数
1
解决办法
416
查看次数

使用 OPENJSON,无法获取 GROUP BY 结果

我将 JSON 字符串传递给存储过程以插入仓库库存。

有时,会有多个具有相同产品的订单项,在相同的货架上、相同的托盘 (LPN) 上、具有相同的日期。我想将它们汇总到表中的一行中。

JSON 表示已接收并存放到某个位置的各个行。这里有 2 个相同的项目:

[{"StockCode": "ABC123", "Qty": "200", "Bin": "E4B4_L", "LPN": "1234", "PutDate": "2022-01-21 18:35:53 UTC"}, {"StockCode": "ABC123", "Qty": "400", "Bin": "E4B4_L", "LPN": "1234", "PutDate": "2022-01-21 18:36:43 UTC"}]
Run Code Online (Sandbox Code Playgroud)

所以:

ABC | 200 |  2022-01-21 00:00:00.000 | LPN1234
ABC | 400 |  2022-01-21 00:00:00.000 | LPN1234
Run Code Online (Sandbox Code Playgroud)

应汇总为:

ABC | 600 |  2022-01-21 00:00:00.000 | LPN1234
Run Code Online (Sandbox Code Playgroud)

我尝试对数量进行 GROUP BY 和 SUM,但表中的结果行仍然是 2 个单独的行。我意识到由于时间戳的原因 PutDate 不一样,所以我认为肯定将其转换为 DATE 可以解决这个问题,但事实并非如此。

SQL脚本:

ALTER Procedure spc_PutAway
(@json NVARCHAR(MAX) = '')
AS …
Run Code Online (Sandbox Code Playgroud)

sql-server insert group-by json

0
推荐指数
1
解决办法
931
查看次数

SELECT 列如何不在 GROUP BY 子句中列出

查询:

select year,sum(mark),sum(maxmark) 
from table1 
group by parameterno
Run Code Online (Sandbox Code Playgroud)

产生错误消息:

列“table1.year”在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中。

group-by sql-standard

-1
推荐指数
2
解决办法
2万
查看次数

带有 WHERE 和 GROUP BY 的复合索引

对于此查询:

SELECT * FROM dogs WHERE a = ? AND b = ? GROUP BY c
Run Code Online (Sandbox Code Playgroud)

哪个综合指数更好:

INDEX(a, b, c)
Run Code Online (Sandbox Code Playgroud)

或者

INDEX(c, a, b)
Run Code Online (Sandbox Code Playgroud)

index group-by

-3
推荐指数
1
解决办法
87
查看次数

标签 统计

group-by ×6

errors ×1

index ×1

insert ×1

json ×1

mysql ×1

postgresql ×1

sql-server ×1

sql-standard ×1