🛢️
PostgreSQL
Grokking Algorithm
  • Content
  • Environment
  • Getting Started
    • Introduction
      • What is PostgreSQL
      • Introduction to PostgreSQL sample database
    • Postgres on Windows
      • Install PostgreSQL on Windows
      • Connect to PostgreSQL database server
      • Load the sample database into the PostgreSQL database server
    • Postgres on Linux
    • Install PostgreSQL on macOS
  • Basic
    • Querying Data
      • SELECT
      • Column alias
      • ORDER BY
      • SELECT DISTINCT
    • Filtering Data
      • WHERE
      • AND
      • OR
      • LIMIT
      • FETCH
      • IN
      • BETWEEN
      • LIKE
      • IS NULL
    • Joining Multiple tables
      • Joins
      • Table aliases
      • INNER JOIN
      • LEFT JOIN
      • RIGHT JOIN
      • SELF JOIN
      • FULL OUTER JOIN
      • CROSS JOIN
      • NATURAL JOIN
    • Grouping data
      • GROUP BY
      • HAVING
    • Set Operations
      • UNION
      • INTERSECT
      • EXCEPT
    • Grouping sets, Cube, and Rollup
      • Grouping sets
      • CUBE
      • ROLLUP
    • Subquery
      • Subquery
      • ANY
      • ALL
      • EXISTS
    • Common Table Expressions
      • PostgreSQL CTE
      • Recursive query using CTEs
    • Modifying Data
      • Insert
      • Insert multiple rows
      • Update
      • Update join
      • Delete
      • Upsert
    • Transactions
      • PostgreSQL Transaction
    • Import & Export Data
      • Import CSV file into Table
      • Export PostgreSQL Table to CSV file
    • Managing Tables
      • Data types
      • Create a table
      • Select into
      • Create table as
      • Auto-increment
      • Sequences
      • Identity column
      • Alter table
      • Rename table
      • Add column
      • Drop column
      • Change column data type
      • Rename column
      • Drop table
      • Truncate table
      • Temporary table
      • Copy a table
    • Understanding PostgreSQL constraints
      • Primary key
      • Foreign key
      • UNIQUE constraint
      • CHECK constraint
      • NOT NULL constraint
    • PostgreSQL Data Types in Depth
      • Boolean
      • CHAR, VARCHAR and TEXT
      • NUMERIC
      • Integer
      • DATE
      • Timestamp
      • Interval
      • TIME
      • UUID
      • Array
      • hstore
      • JSON
      • User-defined data types
  • Advanced
  • PG-PGSQL
  • Functions
  • Adminstration
  • API
Powered by GitBook
On this page
  • PostgreSQL ANY misollar
  • ANY vs. IN

Was this helpful?

Edit on GitHub
  1. Basic
  2. Subquery

ANY

PreviousSubqueryNextALL

Last updated 1 year ago

Was this helpful?

Ushbu qo'llanmada siz PostgreSQL ANY operatoridan skalyar qiymatni quyi so'rov tomonidan qaytarilgan qiymatlar to'plami bilan solishtirish uchun qanday foydalanishni o'rganasiz.

PostgreSQL ANY operatori qiymatni quyi so'rov tomonidan qaytarilgan qiymatlar to'plamiga solishtiradi. Quyida ANY operatorining sintaksisi tasvirlangan:

expresion operator ANY(subquery)

Ushbu sintaksisda:

  • Quyi so'rov aynan bitta ustunni qaytarishi kerak.

  • ANY operatoridan oldin quyidagi taqqoslash operatorlaridan biri bo'lishi kerak =, <=, >, <, > va <>

  • Agar quyi so'rovning har qanday qiymati shartga javob bersa, ANY operatori true qiymatini qaytaradi, aks holda u noto'g'ri qaytaradi.

E'tibor bering, SOME ANY so'zining sinonimi bo'lib, har qanday SQL iborasida SOME ni ANYga almashtirishingiz mumkin degan ma'noni anglatadi.

PostgreSQL ANY misollar

Namoyish uchun ma'lumotlar bazasida quyidagi film va film_category jadvalidan foydalanamiz.

Quyidagi misol film toifasi bo'yicha guruhlangan filmning maksimal uzunligini qaytaradi:

SELECT
    MAX( length )
FROM
    film
INNER JOIN film_category
        USING(film_id)
GROUP BY
    category_id;

Ushbu so'rovdan uzunligi har qanday film toifasining maksimal uzunligidan katta yoki unga teng bo'lgan filmlarni topadigan quyidagi bayonotda quyi so'rov sifatida foydalanishingiz mumkin:

SELECT title
FROM film
WHERE length >= ANY(
    SELECT MAX( length )
    FROM film
    INNER JOIN film_category USING(film_id)
    GROUP BY  category_id );

Mana natija:

Har bir film toifasi uchun pastki so'rov maksimal uzunlikni topadi. Tashqi so'rov ushbu qiymatlarning barchasini ko'rib chiqadi va qaysi film uzunligi har qanday film toifasining maksimal uzunligidan kattaroq yoki unga teng ekanligini aniqlaydi.

E'tibor bering, agar quyi so'rov hech qanday qatorni qaytarmasa, butun so'rov bo'sh natijalar to'plamini qaytaradi.

ANY vs. IN

= ANY IN operatoriga ekvivalent.

Quyidagi misol toifasi Action yoki Drama bo'lgan filmni oladi.

SELECT
    title,
    category_id
FROM
    film
INNER JOIN film_category
        USING(film_id)
WHERE
    category_id = ANY(
        SELECT
            category_id
        FROM
            category
        WHERE
            NAME = 'Action'
            OR NAME = 'Drama'
    );

Natijada:

Quyidagi ibora bir xil natijani beradigan IN operatoridan foydalanadi:

SELECT
    title,
    category_id
FROM
    film
INNER JOIN film_category
        USING(film_id)
WHERE
    category_id IN(
        SELECT
            category_id
        FROM
            category
        WHERE
            NAME = 'Action'
            OR NAME = 'Drama'
    );

E'tibor bering, <> ANY operatori NOT IN dan farq qiladi. Quyidagi ifoda:

x <> ANY (a,b,c) 

ga teng

x <> a OR <> b OR x <> c

Ushbu qo'llanmada siz qiymatni quyi so'rov tomonidan qaytarilgan qiymatlar to'plami bilan solishtirish uchun PostgreSQL ANY operatoridan qanday foydalanishni o'rgandingiz.

@

postgresqltutorial.com
namunaviy
table
output
output