计算具有相同 id 的列的值的存储过程
Posted
技术标签:
【中文标题】计算具有相同 id 的列的值的存储过程【英文标题】:stored procedure that counts value of columns with same id 【发布时间】:2021-03-19 16:29:58 【问题描述】:是否可以有一个基于 id 计算值的存储过程?
更新: 我想要,“Day”中具有相同值的列具有相同的 ID。 我想计算一列中的数字,并显示与之相关的 ID。
我的桌子
| id | day | desc |
|:---- |:------:| ----- |
| 1 | mon | Three |
|:---- |:------:| ----- |
| 1 | mon | Three |
|:---- |:------:| -----:|
| 2 | Tues | Three |
|:---- |:------:| -----:|
| 2 | Tues | Three |
|:---- |:------:| -----:|
| 3 | Weds | Three |
|:---- |:------:| -----:|
| 3 | Weds | Three |
|:---- |:------:| -----:|
| 2 |Tues | Three |
|:---- |:------:| -----:|
| 2 | Tues | Three |
来自 sp 的期望输出:
| id | day | desc |
|:---- |:------:| -----|
| 1 | 2 | Three|
|:---- |:------:| -----|
| 2 | 4 |Three |
|:---- |:------:| -----|
| 3 | 2 |Three |
|:---- |:------:| -----|
neer suggested I do this
select id, count(*) as cnt
from mytable
group by id
这对于只带回一列很有好处,但我现在需要带回两列。
总结, 您如何计算一列并使用相应的 ID 将其返回(其中 A 列的值都具有相同的 ID,具体取决于值)
【问题讨论】:
这个问题与存储过程有什么关系?您在询问查询逻辑,而不是 sp。标题和标签具有误导性。 这个查询必须在存储过程中发生,请看下面的答案。 此查询的逻辑不依赖于执行上下文-视图、sp、函数、ad-hoc 等。stored-procedures
标签旨在标记问题,它处理特定于 sp 的问题(参数、临时表范围、访问权限、语法问题等等)。如果有人搜索此类以 sp 为中心的问题,您的问题标题和标签只会产生不必要的噪音。
【参考方案1】:
你只是想要聚合吗?
select id, count(*) as cnt
from mytable
group by id
查询本身就足够了 - 如果您不想一次又一次地键入相同的查询,也可以使用视图。
【讨论】:
【参考方案2】:回答:
SELECT ID, CAST(StartDate as Date) as StartDate, count(*) as Values
FROM
Table
WHERE
DateArchived is null
GROUP BY CAST(StartDate as Date), ID
【讨论】:
以上是关于计算具有相同 id 的列的值的存储过程的主要内容,如果未能解决你的问题,请参考以下文章
Hibernate / JPA在合并后获取数据库中具有默认值的列的值