Hive 如何在单个查询中检索所有记录和其他记录的计数
我有以下疑问Hive 如何在单个查询中检索所有记录和其他记录的计数,hive,hiveql,Hive,Hiveql,我有以下疑问 select name,trip_id from main order by name 我想检索表中所有记录和列的计数。 对于ex,如果表中有200行,我希望输出为 从主菜单中选择名称、行程id、计数(*) 单次查询是否可行?使用分析count: select name, trip_id, count(*) over() as cnt from main order by name ; DECLARE @Main TABLE (
select name,trip_id from main order by name
我想检索表中所有记录和列的计数。
对于ex,如果表中有200行,我希望输出为
从主菜单中选择名称、行程id、计数(*)
单次查询是否可行?使用分析
count
:
select name, trip_id,
count(*) over() as cnt
from main
order by name
;
DECLARE
@Main TABLE
(
[name] VARCHAR(50),
trip_id INT
);
INSERT INTO @Main
(
[name],
trip_id
)
VALUES
(
'Jim', 1
),
(
'Ian', 2
),
(
'Susan', 2
);
-- Option 1
SELECT
[name],
trip_id,
COUNT(*) OVER () AS ct
FROM
@Main;
-- Option 2
SELECT
[name],
trip_id,
(
SELECT
COUNT(*)
FROM
@Main
)
ct
FROM
@Main;
-- Option 3
SELECT
[name],
trip_id,
v.ct
FROM
@Main
CROSS APPLY
(
SELECT
COUNT(*) FROM @Main
) v (ct);
-- Option 4
SELECT
t1.[name],
t1.trip_id,
t2.ct
FROM
@Main t1
JOIN
(
SELECT
COUNT(*) ct
FROM
@Main
) t2
ON 1 = 1;
-- Option 5
SELECT
t1.[name],
t1.trip_id,
t2.ct
FROM
@Main t1
CROSS JOIN
(
SELECT
COUNT(*) ct
FROM
@Main
) t2;