14

我如何在 Hive 中执行此操作?

    columnA       columnB    columnC
     100.10      50.60       30
     100.10      50.60       30
     100.10      50.60       20
     100.10      70.80       40

输出应该是:

  columnA   columnB    No_of_distinct_colC
  100.10    50.60       2
  100.10    70.80       1

我认为正确的查询:

SELECT columnA,columnB,COUNT(distinct column C)
from table_name
group by columnA,columnB

它是否正确?SQL也很好。

更新:如何找到 columnC 的标准偏差?尽快需要这个。

4

3 回答 3

34

是的,这几乎是正确的。但是你有一个简单的错误。您的列名在 COUNT 中是错误的。

SELECT columnA,columnB,COUNT(DISTINCT columnC) No_of_distinct_colC
from table_name
group by columnA,columnB
于 2013-08-07T01:22:50.430 回答
0

如果您使用的是 PySpark,以下代码应该可以工作:

import pyspark.sql.functions as F
spark.sql('select * from table_name')\
         .groupby(columnA, columnB)\
         .agg(F.countDistinct('columnC') ).show()
于 2021-07-16T19:26:46.010 回答
-4
SELECT * 
FROM
(
    SELECT columnA, columnB, COUNT(DISTINCT column C) AS dis_col
    FROM table_name
    GROUP BY columnA, columnB
) A;
于 2013-10-06T15:20:50.207 回答