Mastering QUERY Function in Google Sheets: Complete Guide with Examples & Interview Questions

The QUERY function in Google Sheets is one of the most powerful and versatile tools available. It allows you to perform SQL-like data manipulations—filtering, sorting, aggregating, and grouping—on your spreadsheet data.


📌 QUERY Function Syntax

QUERY(data, query, [headers])

🔹 Arguments:

  1. data: The range of cells that you want to query.
  2. query: A string written in a pseudo-SQL format.
  3. headers (optional): The number of header rows at the top of your data (default is 1).

🧠 Why Use QUERY?

It combines the power of multiple functions like FILTER, SORT, VLOOKUP, SUMIF, UNIQUE, and even PIVOT TABLES—all in one.


✅ Basic Examples

Assume we have the following data in A1:D6:

NameAgeDepartmentSalary
John25Sales30000
Alice30HR35000
Bob24Sales28000
Carol29Marketing40000
Dave35HR38000

🔹 1. Select All Rows

=QUERY(A1:D6, "SELECT *", 1)

🔸 Returns the full table.


🔹 2. Select Specific Columns

=QUERY(A1:D6, "SELECT A, C", 1)

🔸 Returns only Name and Department columns.


🔹 3. Filtering Rows (WHERE Clause)

=QUERY(A1:D6, "SELECT A, D WHERE C = 'Sales'", 1)

🔸 Shows Name and Salary of employees in Sales department.


🔹 4. Using Comparison Operators

=QUERY(A1:D6, "SELECT A, B WHERE D > 30000", 1)

🔸 Returns Name and Age of employees earning more than 30,000.


🔹 5. Sorting (ORDER BY)

=QUERY(A1:D6, "SELECT A, D ORDER BY D DESC", 1)

🔸 Returns Name and Salary sorted by Salary in descending order.


🔹 6. Grouping and Aggregating (GROUP BY)

=QUERY(A1:D6, "SELECT C, AVG(D) GROUP BY C", 1)

🔸 Calculates average salary per department.


🔹 7. Labeling Columns

=QUERY(A1:D6, "SELECT C, AVG(D) GROUP BY C LABEL AVG(D) 'Average Salary'", 1)

🔸 Adds a custom label to the aggregated column.


🔹 8. Limit Results

=QUERY(A1:D6, "SELECT * LIMIT 3", 1)

🔸 Returns only the first 3 rows.


🔹 9. Combining WHERE and ORDER BY

=QUERY(A1:D6, "SELECT A, D WHERE D > 30000 ORDER BY D DESC", 1)

🔸 Filters employees with salary > 30,000 and sorts them in descending order.


🔹 10. Dynamic Query with Cell Reference

=QUERY(A1:D6, "SELECT A, D WHERE D > "&E1, 1)

🔸 Assuming cell E1 has the value 30000, this will filter dynamically.


⚠️ Notes:

  • Text values in queries must be enclosed in single quotes (‘ ‘).
  • Numbers and cell references can be added directly.
  • QUERY is case-insensitive by default.

🎯 Common Use Cases

  • Creating dashboards
  • Creating dynamic reports
  • Filtering datasets based on dropdown selections
  • Summarizing large data tables
  • Converting flat data into summarized views like pivot tables

📘 Real-Life Example:

Imagine a school with student records:

StudentClassSubjectMarks
Rahul10Math85
Sneha10Science90
Aman11Math78
Priya10Math92

To find average marks in each subject for class 10:

=QUERY(A1:D5, "SELECT C, AVG(D) WHERE B = 10 GROUP BY C", 1)

🔸 Returns Math and Science with their average marks for class 10 students.


💼 Top 10 Interview Questions on Google Sheets QUERY Function

  1. Q: What is the QUERY function in Google Sheets?
    A: It allows you to use SQL-like queries to filter, sort, group, and summarize data.
  2. Q: How do you filter records using a text value in QUERY?
    A: Use WHERE column = 'Text', e.g., WHERE C = 'Sales'.
  3. Q: How can you sort data using QUERY?
    A: Use ORDER BY clause: ORDER BY column [ASC|DESC].
  4. Q: What does GROUP BY do in QUERY?
    A: It aggregates values (e.g., SUM, AVG) based on unique groups in a column.
  5. Q: How do you rename column headers in the QUERY result?
    A: Use the LABEL clause: LABEL AVG(D) 'Average Salary'.
  6. Q: What’s the difference between SELECT * and SELECT A, B?
    A: SELECT * selects all columns; A, B selects only specific columns.
  7. Q: How can you use a cell reference in a QUERY?
    A: Concatenate it: "SELECT A WHERE B > "&E1
  8. Q: Can you use OR and AND in QUERY filters?
    A: Yes. Example: WHERE B > 25 AND C = 'HR'
  9. Q: What happens if you omit the headers parameter?
    A: QUERY assumes the first row is the header by default (1).
  10. Q: How is QUERY different from FILTER function?
    A: FILTER is simpler and only filters data. QUERY is more powerful with sorting, aggregation, grouping, and SQL-like operations.