Essential cookies keep authentication working. With your permission, we also use analytics cookies to understand and improve the product. Read our Privacy Policy

DataEngPrep.tech
QuestionsPracticeAI CoachDashboardPricingBlog
ProLogin
Home/Questions/General/Other/Find the names of managers who have at least 7 employees directly reporting to them.

Find the names of managers who have at least 7 employees directly reporting to them.

General/Othermedium1 min read

Reviewed by Aditya Kumar · Last reviewed 2026-03-24

To find managers with at least 7 direct reports, you need to perform a self join on the employees table, grouping by the manager's ID and filtering the groups based on the count of their direct…

🤖 Analyze Your Answer
Frequency
Low
Asked at 1 company
Category
243
questions in General/Other
Difficulty Split
151E|43M|49H
in this category
Total Bank
1,863
across 7 categories
Key Concepts Tested
joinsql

Why This Question Matters

This medium-level General/Other question appears frequently in data engineering interviews at companies like Deolite. While less common, it tests deeper understanding that distinguishes strong candidates. Mastering the underlying concepts (join, sql) will help you answer variations of this question confidently.

How to Approach This

Break this problem into components. Identify the core trade-offs involved, then walk the interviewer through your reasoning step by step. Demonstrate awareness of edge cases and production considerations - this is what separates good answers from great ones. The expert answer includes a code example that demonstrates the implementation pattern.

Expert Answer
290 wordsIncludes code

To find managers with at least 7 direct reports, you need to perform a self-join on the employees table, grouping by the manager's ID and filtering the groups based on the count of their direct reports.

Mechanics and Why

The core idea is to treat the employees table as two distinct entities: one representing the employees themselves (E) and another representing their managers (M). A JOIN condition E.manager_id = M.employee_id links each employee to their direct manager. After establishing this relationship, GROUP BY M.employee_id aggregates all employees under their respective managers. Finally, the HAVING COUNT(E.employee_id) >= 7 clause filters these groups, retaining only those managers who have seven or more employees directly reporting to them. The COUNT(E.employee_id) ensures we count actual employees, not managers.

Example and Trade-offs

A common SQL approach would be:

SELECT
    M.employee_name AS manager_name
FROM
    employees AS E
JOIN
    employees AS M ON E.manager_id = M.employee_id
GROUP BY
    M.employee_id, M.employee_name
HAVING
    COUNT(E.employee_id) >= 7;

For performance, ensure that manager_id and employee_id columns are indexed. This significantly speeds up the JOIN operation. In very large datasets, the GROUP BY and COUNT operations can be resource-intensive, potentially leading to data shuffling across nodes in distributed systems like Apache Spark. Database optimizers (e.g., in PostgreSQL, MySQL, or Snowflake) will try to optimize the execution plan, but proper indexing is crucial.

In the interview, also mention…

Discussing alternative approaches like using a subquery to count reports first, then joining back to get manager names. Emphasize that "direct" is key; if the question implied multi-level reporting, a recursive Common Table Expression (CTE) would be necessary. Also, consider edge cases like managers with NULL manager_id (top-level executives) or data quality issues where manager_id might not exist in employee_id.

⚡
Pro Tip

Pro-Move: Clarify 'direct'—ask if multi-level hierarchy. Shows attention to requirements.

Want all answers as a PDF for offline study?
Seven focused volumes with 750+ in-depth answers — Answer Vault →

Related General/Other Questions

hardHave you worked on Data Warehousing projects?FreemediumHow would you read data from a web API? What steps would you follow after reading the data?FreehardRetrieve the most recent sale_timestamp for each product (Latest Transaction).FreehardWhat is the difference between OLTP and OLAP?FreemediumWhat is the difference between SQL and NoSQL databases?Free

Level up your prep

Recommended
Educative
Educative Unlimited

800+ hands-on courses — Grokking System Design, Coding Patterns, and AI mock interviews for your DE loop.

Start learning →

Some links below are affiliate links. If you buy through them we may earn a small commission at no extra cost to you — it helps keep DataEngPrep free.

According to DataEngPrep.tech, this is one of the most frequently asked General/Other interview questions, reported at 1 company. DataEngPrep.tech maintains an editor-reviewed database of 1,863 data engineering interview questions across 7 categories.

← Back to all questionsMore General/Other questions →
Categories
All QuestionsSQLSpark / Big DataPython / CodingSystem DesignCloud / ToolsBehavioral
By Company
AmazonGoogleDatabricksSnowflakeAWSAzureMicrosoftNetflixUberTCS
Interview Guides
All GuidesTop SQL QuestionsTop Spark QuestionsPySpark QuestionsTop Python QuestionsTop System DesignKafka QuestionsAirflow QuestionsSQL Window FunctionsETL QuestionsData Modeling
Products
AI Interview CoachAnswer AnalyzerSQL PlaygroundResume AnalyzerAnswer Vault PDFsPricing
Company
About & Editorial PolicyContact UsAI DisclosureDisclaimerTerms of ServicePrivacy Policy
© 2026 DataEngPrep.tech. All rights reserved.
AboutBlogContactDisclaimer