AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题

问题[count](dba)

Martin Hope
Łukasz Góra
Asked: 2024-08-08 18:00:57 +0800 CST

如何获取存储在另一个表中的满足条件的记录

  • 5

问题:如何传递有 4 个表的关系需求:需求->链接<-test_cases,测试用例->结果<-结果

设想:

表 1 - 要求

请求编号 地位
要求-1 打开
要求-2 打开

表 2 - 测试用例

测试编号 地位
TC-1 打开
TC-2 取消

表 3 - 链接

链接 ID 请求编号 测试编号
链接-1 要求-1 TC-1
链接-2 要求-1 TC-2

表4-测试结果

结果 ID 测试编号 结果
res-1 TC-1 已通过
res-2 TC-2 失败的

到目前为止,我已经尝试了这种方法来生成表 req_id | cnt_test_cases | cnt_results,并在 cnt_test_cases = cnt_results(='passed') 时将要求视为已通过,但它不起作用,因为这些计算列在最后的“Having”语句中不存在

选择不同的需求.req_id,

(从 test_cases、links 中选择 COUNT(DISTINCT test_cases.test_id),其中 links.req_id = requirements.req_id 并且 links.test_id = test_cases.test_id 并且 test_cases.status !='cancelled')作为 cnt_test_cases,

(从结果中选择 COUNT(DISTINCT results.result),链接,其中 links.req_id = requirements.req_id 和 links.test_id = results.test_id 和 results.reuslt = 'passed')作为 cnt_test_cases)作为 cnt_results

具有 cnt_test_cases = cnt_results

也许有更好的方法?

count
  • 2 个回答
  • 36 Views
Martin Hope
EyeSeeSharp
Asked: 2022-07-01 03:20:15 +0800 CST

SQL Return Table with where 子句和总表值的出现

  • 5

我很难弄清楚如何实现这一目标。我知道如何在 C# 中实现它,但不知道 SQL。

假设我有下表:

ID 姓名 路线编号
1 鲍勃 1001
2 鲍勃 1002
3 安娜 1001
4 吉姆 1001
5 伊莱 1001

我想返回整个表,并用一个额外的列显示routeID按名称的总出现次数,所以where name='Bob'看起来像:

ID 姓名 路线编号 全部的
1 鲍勃 1001 4
2 鲍勃 1002 1

但是,如果我写类似

declare @ct as nvarchar(5)
set @ct = (SELECT COUNT(RouteId) from <table>)

select *, @ct
from <table>
where name = 'Bob'

我得到了所有路线 ID 的总数,而不仅仅是行中显示的那个。

我尝试查看计算列,但据我所知,它不支持这种类型的查询。

谁能指出我正确的方向?

sql-server count
  • 2 个回答
  • 394 Views
Martin Hope
HeyJude
Asked: 2022-05-11 23:30:41 +0800 CST

计算有多少变量等于目标值

  • 0

有没有一种聪明的方法来计算有多少变量等于某个目标值(在 SQL Server 中)?

例如,如果我有:

declare @a int = 1;
declare @b int = 2;
declare @c int = 1;
declare @target int = 1;

然后我想做多少个@a, @b, @ceqauls @target。

在命令式语言中,很容易创建一个内联变量数组,然后计算它们——例如在 JS 中:

var a = 1, b = 2, c = 2, target = 1;
if ([a, b, c].filter(item => item == target).length == 1)
   // do something 

该“内联数组”在 SQL 中的等价物将是一个单列表,但这需要 using DECLARE TABLE,我想避免这种情况。

在 SQL 中是否有类似的简单方法来进行此类计数?

请注意,我对“在不声明的情况下创建表”不太感兴趣——我真正关心的是根据目标变量计算变量,所以如果可以在完全不使用表的情况下完成,那就更好了。

sql-server count
  • 1 个回答
  • 74 Views
Martin Hope
Waffles
Asked: 2021-11-12 06:59:24 +0800 CST

从 2 个表中计算日期里程碑之间的日期条目

  • 0

我在表 1 上有一组随机日期的里程碑,在表 2 上有一组随机日期的项目(见下文)。

表格1

里程碑 里程碑日期
一个 2021 年 1 月 1 日
乙 2021 年 3 月 15 日
C 2021 年 5 月 27 日
D 2021 年 9 月 9 日

表2(该表有数百个条目,不同日期跨越全年)

物品编号 项目创建日期
1 2021 年 1 月 17 日
2 2021 年 1 月 18 日
3 2021 年 1 月 25 日
4 2021 年 2 月 12 日
... ...

我需要计算表 2 中日期介于每个里程碑之间的条目数(见下文)。

里程碑 项目
一个 24
乙 31
C 44
D 37

我目前的查询是:

SELECT
    tbl2.Milestone
    ,COUNT(DISTINCT tbl1.ItemID) 'Items'
FROM
    tbl1
        FULL JOIN tbl2
        ON tbl1.CreateDate = tbl2.MilestoneDate
GROUP BY
    tbl2.Milestone,tbl2.MilestoneDate
ORDER BY
    tbl2.MilestoneDate
里程碑 项目计数
无效的 136

我尝试了许多配置来解决这个问题,包括仅使用日期而不是里程碑名称、删除 ORDER BY 以及完全不同的编码方法。解决此问题的最佳方法是什么?注意:我不能使用任何一个表中的键,因为它们会导致跟踪完全不同的东西。我不是这个数据库的 dba,所以我不能自己调整表。

目前,我必须通过指定每个日期范围并运行查询,然后是另一个日期范围并运行(有几十个里程碑不断添加新的里程碑)来手动提取每个值。

count group-by
  • 2 个回答
  • 24 Views
Martin Hope
Codemonkey
Asked: 2021-09-21 04:56:09 +0800 CST

是否可以计算每行中的非空列?

  • 2

假设这个数据:

id      firstname     surname     val1      val2      val3
1       joe           blogs       1         (null)    (null)
2       jane          doe         (null)    2         5
3       bobby         tables      (null)    (null)    (null)

我想要一个返回的查询:

id     count_non_null_vals
1      1
2      2
3      0

COUNT并且SUM显然不起作用(如果他们这样做,请教育我!),虽然我们有GREATESTand作为/LEAST的行内类似物,但我找不到类似的东西.MAXMINCOUNT

我可以制作一个可怕的嵌套IFs 等庞然大物,但在我的真实世界遗留示例中有 30 个这样的列,所以我宁愿能够做COL_COUNT(val1, val2, val3...等

谢谢!

mysql count
  • 1 个回答
  • 1827 Views
Martin Hope
Farid Siddiqui
Asked: 2021-02-07 10:54:55 +0800 CST

如果同一表中不存在记录,如何使用 group by 获取计数 0?

  • 1

我需要一些专家的建议。

我在 SQL Server 中有一张包含员工和电子代码的表。我想获取每个员工的电子代码计数,但在某些情况下,员工没有特定的电子代码。

我想返回零的员工缺少电子代码的地方。

SELECT Employee, eCode, Count(*) cnt FROM Test
Group By Employee, eCode
Order by Employee, eCode

上面的 SQL 给了我以下输出

在此处输入图像描述

David 缺少 Gary 和 Tony 拥有的 eCode X 和 Y。我怎样才能为其计数返回零。同样,Gary 和 Tony 缺少 F 和 G,我希望这两个值为零。

我可以在这里使用一些帮助。

count group-by
  • 1 个回答
  • 1462 Views
Martin Hope
Drahcir
Asked: 2021-01-14 01:15:32 +0800 CST

EAV - 对有和没有 NULL 的列和行值进行 COUNT()/SUM()

  • 1

假设有一张桌子

演示

使用这些数据:

ID 用户身份 标题 数据
1 1 日期 01-01-2021
2 1 颜色 红色的
3 2 日期
4 2 颜色 黄色
5 3 日期 04-01-2021
6 3 颜色 红色的
5 4 日期 04-01-2021
6 4 颜色 粉色的
7 5 日期 02-01-2021
8 5 颜色 粉色的
7 6 日期 08-01-2021
8 6 颜色 粉色的

如果行日期的数据是空的,颜色还没有被拾取。

我需要在网站 php 页面上查看的信息概述是:

获得的 RED:2
总 RED:2

黄色拾取:0
总黄色:1

粉红色拾取:3
总粉红色:3

mysql count
  • 2 个回答
  • 125 Views
Martin Hope
LLCoolSteve
Asked: 2020-08-11 15:28:15 +0800 CST

计算 TagName 列的某些值的出现次数

  • 2

我想计算 SQL 中不同传感器行的出现次数,但我似乎做错了,似乎我没有正确地可视化它。

如果我在 C 风格语言的伪代码中执行此操作,我会这样做:

FOR i in range(taglist[i]):
    
    print(taglist[i], count(taglist[i]) )

我一直在尝试这个:

SELECT COUNT(*)
FROM   (
           SELECT DISTINCT [TagName]
           FROM   [A2ALMDB].[dbo].[AlarmMaster]
           WHERE  (TagName LIKE '%Sensor%' OR GroupName LIKE'%Sensors%')
       ) a

它返回 66,但我希望它返回在SELECT ... FROM (...)a.

谁能帮我解决我应该如何尝试将我的不同传感器出现的所有计数总计而不是所有不同标记名的计数?

sql-server count
  • 1 个回答
  • 1548 Views
Martin Hope
Bruce
Asked: 2020-08-04 10:30:36 +0800 CST

为工单的每个最新状态计算行数

  • 2
 ticket_number |          datetime          | status
---------------+----------------------------+---------
             1 | 2020-08-03 03:52:58.048196 | replied
             1 | 2020-08-02 19:55:49.121455 | new
             2 | 2020-07-30 03:52:58.048196 | pending
             2 | 2020-07-28 20:15:41.213842 | replied
             2 | 2020-07-26 03:52:58.482911 | new
             3 | 2020-06-17 19:55:49.394628 | closed
             3 | 2020-06-14 03:52:58.513141 | replied
             3 | 2020-06-11 19:55:49.242859 | new
             4 | 2020-05-14 07:13:50.527481 | new
             5 | 2020-05-13 11:24:38.558921 | new

上表按datetime. 订购后,我需要分组,ticket_number以便每张票只出现一次,并选择status最新的datetime每张票​​。然后我需要计算每个status.

工单 1 的状态为已回复 - reply_count = 1,工
单 2 的状态为待处理 - pending_count = 1,
工单 3 的状态为已关闭 - closed_count = 1,工
单 4 的状态为 new - new_count = 1,
票 5 的状态为 mew - new_count = 2

预期结果:

replied_count  |  pending_count  |  closed_count  |  new_count
---------------+-----------------+----------------+------------
             1 |               1 |              1 |          2
postgresql count
  • 2 个回答
  • 45 Views
Martin Hope
Chris
Asked: 2020-05-22 20:35:09 +0800 CST

如何检查工作人员的结束日期是否为 Null 值

  • 0

我有一个数据库,记录整个组织中的员工任务以及他们何时完成等,我需要确定每个员工是否在任一完成中至少有一行具有空值。

基本上 - 向我展示任何在 Finish 列中至少有一行具有空值的employee_no。

可以有多个空值,但只要有一个。

样本数据库:

在此处输入图像描述

count sql-server-2016
  • 2 个回答
  • 27 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve