簡體   English   中英

SQL 查詢 - 取這個 boolean 表達式的 MIN 是什么意思?

[英]SQL query - What does taking the MIN of this boolean expression mean?

請原諒我對此一無所知...我正在參加數據分析課程,並且在練習中偶然發現了這個查詢:

SELECT
  CASE
    WHEN MIN(REGEXP_CONTAINS(STRING(ActivityDate), DATE_REGEX)) = TRUE THEN
  "Valid"
  ELSE
    "Not Valid"
  END
    AS valid_test
  FROM
   `tracker_data_clean.daily-activity-clean`;

ActivityDate是包含日期類型數據的字段, DATE_REGEX是日期格式字符串的正則表達式變量。

我不知道,取這個 boolean 表達式REGEX_CONTAINS的 MIN() 是什么意思。

如果你們中的任何人能幫助我理解這樣做的概念,我將不勝感激。

謝謝 !

該查詢從表中選擇行並將REGEXP_CONTAINS() function 應用於ActivityDate列中的每個(字符串轉換的)值。 REGEXP_CONTAINS()將根據值是否與DATE_REGEX中的正則表達式模式匹配返回truefalse

MIN()在這里的行為方式可能因實現而異:

  • 布爾值可能被強制轉換為整數,因此MIN()正在評估01 如果所有值都是1 ( true ),則MIN()將為1 ( true ),否則為0 ( false )。
  • 其他實現可能會直接評估布爾值,因此MIN()如果所有值都為true true因為最小值為truetruefalse “更大”),否則返回false

根據實現,結果是MIN()返回0 / 1false / true 無論哪種方式,該結果都會與CASE語句中的true進行比較。 如果所有值都與正則表達式匹配,則比較結果為true

基本上,查詢是“每行在ActivityDate列中都有有效日期嗎?” 結果將是一個包含單列valid_test和一行的表,如果它們都匹配,則包含“Valid”,否則包含“Not Valid”。

另一種與某些編程語言相關的看待它的方式是MIN(bool_function())類似於all() ,這意味着如果所有值都為true true 同樣, MAX(bool_function())類似於any() ,這意味着如果任何值為true true

暫無
暫無

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

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