반응형
창 기능을 사용하여 표의 열을 업데이트하는 방법
MariaDB에는 서로 다른 노드로 구성된 테이블이 있으며, 각 노드는 여러 하드웨어 구성 요소를 가질 수 있으며, 각 노드가 몇 개의 하드웨어 구성 요소를 가지고 있는지 세어 한 열에 저장하려고 합니다.
따라서 "라는 빈 열을 만들었습니다.HW_Count".저는 아래 SELECT 문을 통해 이 계산을 할 수 있습니다.
SELECT NodeID,COUNT(NodeId) OVER (PARTITION BY NodeId) FROM Hardware AS HW_Count
다음 종류의 목록을 반환합니다.
NodeID HWCount
1 33
1 33
... ...
2 11
2 11
... ...
이제 하드웨어라는 테이블의 빈 열을 tihs 정보로 업데이트하고 싶은데 올바른 UPDATE 문을 어떻게 작성해야 할지 모르겠습니다.나는 그 노선에 따라 무언가를 하고 싶습니다.
UPDATE Hardware
SET HW_count =
COUNT(NodeId) OVER (PARTITION BY NodeId)
하지만 그것은 돌아옵니다.
"SQL ERROR (4015): Window function is allowed only in SELECT list and ORDER BY clause".
내 열을 업데이트하는 올바른 방법은 무엇입니까?
감사합니다!
나는 간신히 답을 찾았습니다.
UPDATE Hardware, (SELECT NodeID,COUNT(NodeID) AS `HW_Count` FROM
Hardware GROUP BY NodeID) AS dummyTable
SET Hardware.hw_count = Dummytable.Hw_count
WHERE Hardware.NodeID= dummytable.NodeID
사용해 보십시오.
UPDATE H1
SET HW_count = (SELECT COUNT(*) HW_count FROM Hardware WHERE NodeID = H1.NodeID GROUP BY NodeID)
FROM Hardware H1
INNER JOIN Hardware H2 ON H1.NodeID=H2.NodeID
다음을 사용하여 이 작업을 수행할 것을 권장합니다.JOIN
그리고.GROUP BY
:
UPDATE Hardware h JOIN
(SELECT NodeID, COUNT(NodeID) AS new_hw_count
FROM Hardware
GROUP BY NodeID
) hh
ON hh.NodeID = h.NodeID
SET h.hw_count = h.new_hw_count;
언급URL : https://stackoverflow.com/questions/56847627/how-to-update-a-column-in-a-table-using-a-window-function
반응형
'programing' 카테고리의 다른 글
Format-Table의 PowerShell 출력 색상을 지정하는 방법 (0) | 2023.08.18 |
---|---|
Android ADB 장치 오프라인, 명령을 실행할 수 없음 (0) | 2023.08.18 |
C#에서 문자열 인코딩 결정 (0) | 2023.08.18 |
div 요소 내에서 이미지를 수평으로 중앙에 배치하는 방법은 무엇입니까? (0) | 2023.08.13 |
docker_compose.yml의 링크와 dependent_on 간의 차이 (0) | 2023.08.13 |