表格看起来像这样
CREATE TABLE [CONTENTS].[ID]
(
[ID] NVARCHAR (20) NOT NULL,
[NAME] NVARCHAR (MAX) NOT NULL,
[CONTENT] NVARCHAR (MAX) NULL,
[PARENT_ID] NVARCHAR (20) NOT NULL,
[TYPE] INT NOT NULL,
[SHARED] INT NOT NULL,
[CREATED] DATETIME NULL,
[ICON] VARBINARY (MAX) NULL,
[UPDATED] DATETIME NULL,
[TASK_STATUS] INT NULL
);
如果列Type
为2且具有特定值ID
,那么我需要计算该行。
如果列Type
为1,那么它将是另一行(子行)的父级
此外,我想获取ID的所有子行的计数。
最后我想要计算所有行数。
以下表为例。
ID NAME PARENT_ID TYPE
111 A 000 1
222 B 111 1
333 C 111 2
444 D 111 2
555 E 222 2
具有类型2的行计数的ID→111 3 。 (即)222是111的孩子,也增加了2型。
预期结果: COUNT 3
答案 0 :(得分:0)
这不是完整的解决方案,但可能会给你一个想法
//It will return 1 or 0 if id is unique
select count(*) from tablex where type = 2 and id = x;
//To get count of child rows with parent id
select tablex.id, tablexb.child_count from tablex INNER JOIN (select parent_id, count(*) as child_count from tablex group by parent_id) as tablexb ON tablex.id = tablexb.parent_id where tablex.type = 1;