查询表workflow_flownode中nodeid字段重复的所有数据
时间: 2023-11-27 12:46:16 浏览: 81
你可以使用以下的SQL查询语句来查询表workflow_flownode中nodeid字段重复的所有数据:
```sql
SELECT nodeid, COUNT(nodeid) AS DuplicateCount
FROM workflow_flownode
GROUP BY nodeid
HAVING COUNT(nodeid) > 1;
```
这个查询语句会返回nodeid字段重复的所有数据,并统计每个重复的nodeid出现的次数。通过使用GROUP BY和HAVING子句,我们可以筛选出nodeid重复的数据。你可以根据需要进一步处理查询结果。
相关问题
update formtable_main_157 set spr=(SELECT string_agg(a1.lastname,',') FROM ( SELECT a.requestid, a.userid, b.lastname lastname FROM workflow_currentoperator a JOIN hrmresource b ON a.userid=b.id WHERE a.requestid=$requestid$ and a.nodeid=484 ) as a1 ) where requestid=$requestid$ 检查这个语句的错误并改正
这个 SQL 语句看起来是更新 `formtable_main_157` 表中的 `spr` 字段,其中 `spr` 字段的值应该是从 `workflow_currentoperator` 和 `hrmresource` 两个表中查询得到的。其中,`workflow_currentoperator` 表中记录了流程中当前操作者的信息,`hrmresource` 表中记录了人员信息。具体来说,SQL 语句的实现思路是:
1. 查询 `workflow_currentoperator` 表中 `requestid` 值为 `$requestid$`,`nodeid` 值为 `484` 的所有记录,得到这些记录的 `userid` 列表。
2. 根据 `userid` 列表,查询 `hrmresource` 表中对应的 `lastname` 列表。
3. 将 `lastname` 列表中的所有值拼接成一个字符串,并将该字符串更新到 `formtable_main_157` 表中 `requestid` 值为 `$requestid$` 的记录的 `spr` 字段中。
根据上述描述,可以尝试修改 SQL 语句如下:
```
UPDATE formtable_main_157
SET spr = (
SELECT string_agg(b.lastname, ',')
FROM workflow_currentoperator a
JOIN hrmresource b ON a.userid = b.id
WHERE a.requestid = $requestid$ AND a.nodeid = 484
)
WHERE requestid = $requestid$;
```
这里使用了 `JOIN` 语句将 `workflow_currentoperator` 表和 `hrmresource` 表连接起来,同时使用了 PostgreSQL 特有的 `string_agg` 函数来将 `lastname` 列表中的值拼接成一个字符串。
阅读全文