簡體   English   中英

SQL/Hive 計數不同的列

[英]SQL/Hive count distinct column

我如何在 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 的標准偏差? 盡快需要這個。

是的,這幾乎是正確的。 但是你有一個簡單的錯誤。 您的列名在 COUNT 中是錯誤的。

SELECT columnA,columnB,COUNT(DISTINCT columnC) No_of_distinct_colC
from table_name
group by columnA,columnB

如果您使用的是 PySpark,以下代碼應該可以工作:

import pyspark.sql.functions as F
spark.sql('select * from table_name')\
         .groupby(columnA, columnB)\
         .agg(F.countDistinct('columnC') ).show()
SELECT * 
FROM
(
    SELECT columnA, columnB, COUNT(DISTINCT column C) AS dis_col
    FROM table_name
    GROUP BY columnA, columnB
) A;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM