June 20, 2024

10 Exciting SQL Project Ideas for Beginners (2024)

Creating a diversified portfolio of SQL projects is the best way to land a job as a data analyst, even with no experience. By tackling real-world data challenges, you'll gain the hands-on skills employers are looking for and you'll demonstrate the ability to extract valuable insights from raw data.

We've curated a list of 10 accessible yet challenging SQL project ideas for beginners who want to enhance their querying capabilities while also building a solid portfolio that will get you the job.

Different SQL flavors: SQLite, T-SQL, MySQL, PostgreSQL, Oracle

Going forward, here's what to expect: First, we'll guide you on how to choose the right SQL portfolio projects. Then, we'll cover the essential skills and knowledge you need to get started. Finally, we'll present you with our list of 10 beginner SQL projects that will significantly enhance your portfolio.

Choosing the right SQL portfolio projects

With the abundance of SQL project ideas out there, it can be overwhelming trying to decide which ones to include in your portfolio. To help you with this process, let's look at some of the key factors to consider when selecting a SQL project that will showcase your skills and impress potential employers:

  • Skill level and learning objectives: Align projects with your current skill level. Beginners should focus on fundamental concepts like data querying, filtering, and aggregation. As you gain experience, take on more complex projects involving advanced techniques like window functions, subqueries, and performance optimization.
  • Personal interests and industry relevance: Choose projects that resonate with your interests and align with the industry you want to work in. This makes learning enjoyable and demonstrates your domain expertise in sectors you want to break into.
  • Diversity and breadth of skills: Aim for a range of projects that highlight different aspects of SQL. Include data cleaning, complex joins, data analysis, reporting, and database design. A diverse portfolio shows your ability to tackle various challenges in data-related roles.

Step-by-step approach to selecting SQL projects:

  1. Assess your current SQL knowledge and set clear learning objectives for yourself.
  2. Research and list potential SQL project ideas based on your skill level, interests, and target industry.
  3. Evaluate and select projects that showcase your skills and align with your goals.
  4. Break down each project into smaller milestones with realistic timelines―take the time you need to get this one right; it's often the difference between success and failure.
  5. Document your process and seek feedback from peers, mentors, or online communities.
  6. Showcase your completed projects in your portfolio, highlighting applied skills and impact.

The key to building an impressive SQL portfolio is to choose projects that challenge you, align with your interests, and demonstrate your ability to solve real-world problems using SQL. Continuous learning and a growth mindset will be your greatest assets in building a successful career in data analytics and database management.

Getting started with SQL projects

Ready to start building your own portfolio of SQL projects and growing your SQL skills? Great! Let's go over what you'll need to get up and running.

First, it's important to have a solid grasp of SQL fundamentals, especially if you want to work on independent SQL projects for your portfolio. Make sure you're comfortable with:

  • Basic SQL syntax and commands like SELECT, JOIN, and WHERE clauses
  • Filtering, sorting, and aggregating data using SQL
  • Creating tables and inserting data
  • Relational databases and how they're structured

Hands-on practice is the best way to build confidence with these concepts. For example, completing a structured learning path like Dataquest's SQL Fundamentals skill path will strengthen and solidify your SQL querying skills since you'll learn by doing rather than passively watching videos.

Let's talk about tools

To start developing your own SQL projects, you'll want:

Setting up your development environment to build SQL projects

Install a DBMS: Choose a database management system that aligns with your learning goals and is compatible with your operating system, such as MySQL on Windows. Others you might want to check out include: SQLite or PostgreSQL. During setup, create a new database to house your project tables. Be sure to follow best practices such as:

  • Using consistent naming conventions
  • Adding primary keys to each table
  • Integrating with a version control system like Git to track changes to your SQL scripts over time

Starting an independent SQL project: When you're ready to take on an independent SQL project, follow these steps:

  1. Choose a dataset that interests you from sources like those linked above.
  2. Formulate questions you'd like to answer with the data.
  3. Sketch out the tables and relationships you'll need.
  4. Use your SQL skills to bring your project to life.

Showcase your skills: Your SQL portfolio projects are an opportunity to apply concepts in real-world scenarios and showcase your skills to potential employers. Stay curious, challenge yourself to keep learning, and most importantly—have fun!

Remember to start with small, focused projects and gradually build up to more complex ones as your skills grow.

Real learner, real results

Just ask Rahila Hashim, who leveraged Dataquest's project-based curriculum to sharpen her SQL skills and land a job as a data scientist:

Learning SQL at Dataquest helped a lot. At my current job, we use SAS, but SAS has SQL language embedded in it as well, and this made it easier to understand and work with.

Through Dataquest's practical, project-based approach, Rahila was able to gain the SQL skills she needed to succeed in her new role. She appreciated how Dataquest challenges learners to figure things out on their own:

You are not just given answers immediately when you're working on the code — instead, you're cracking the brain to understand the code. The reading notes and in-browser coding made it super practical and easy to understand.

Rahila's experience showcases the power of project-based learning for aspiring business analysts. By working on real-world projects and pushing yourself to problem-solve, you can develop the practical skills employers are looking for and set yourself up for career success, just like Rahila did with Dataquest.

10 SQL Project Ideas

What's great about the list of projects below is the variety of scenarios they cover. One minute you'll be analyzing Kickstarter campaigns, the next you'll be using SQL to detect fraud. Working on such diverse challenges ensures that you can confidently apply your SQL skills in all kinds of situations to uncover valuable insights from data. While most of these SQL project ideas are beginner-friendly, the last few projects in the list are more complex and might take a bit more effort to complete.

Beginner SQL Projects

  1. Analyzing Kickstarter Projects
  2. Analyzing Startup Fundraising Deals from Crunchbase
  3. Analyzing CIA Factbook Data Using SQL
  4. Exploring Squirrel Census Data
  5. Designing and Creating a Database

Intermediate SQL Projects

  1. Customers and Products Analysis Using SQL
  2. Building a Database for Crime Reports
  3. Answering Business Questions using SQL

Advanced SQL Projects

  1. SQL Window Functions for Northwind Traders
  2. Fraud Detection with SQL

In the sections below, we'll walk you through each project step-by-step. You'll come away with the knowledge and confidence to tackle SQL challenges in the real world. So let's jump in!

1. Analyzing Kickstarter Projects

Difficulty Level: Beginner

Overview

In this beginner-level guided project, you'll step into the role of a data analyst to explore and analyze Kickstarter project data using SQL. You'll start by importing and exploring the dataset, followed by cleaning the data to ensure accuracy. Then, you'll write SQL queries to uncover trends and insights within the data, such as success rates by category, funding goals, and more. By the end of this project, you'll be able to use SQL to derive meaningful insights from real-world datasets.

Tools and Technologies

  • SQL
  • Databases

Prerequisites

To successfully complete this project, you should be comfortable working with SQL and databases, such as:

  • Basic SQL commands and querying
  • Data manipulation and joins in SQL
  • Experience with cleaning data and handling missing values

Step-by-Step Instructions

  1. Import and explore the Kickstarter dataset to understand its structure
  2. Clean the data to handle missing values and ensure consistency
  3. Write SQL queries to analyze the data and uncover trends
  4. Visualize the results of your analysis using SQL queries

Expected Outcomes

Upon completing this beginner SQL project, you'll have gained valuable skills and experience, including:

  • Proficiency in using SQL for data analysis
  • Experience with cleaning and analyzing real-world datasets
  • Ability to derive insights from Kickstarter project data

Relevant Links and Resources

Additional Resources

2. Analyzing Startup Fundraising Deals from Crunchbase

Difficulty Level: Beginner

Overview

In this beginner-level guided project, you'll step into the role of a data analyst to explore a dataset of startup investments from Crunchbase. By applying your pandas and SQLite skills, you'll work with a large dataset to uncover insights on fundraising trends, successful startups, and active investors. This project focuses on developing techniques for handling memory constraints, selecting optimal data types, and leveraging SQL databases. You'll strengthen your ability to apply the pandas-SQLite workflow to real-world scenarios.

Tools and Technologies

  • Python
  • Pandas
  • SQLite
  • Jupyter Notebook

Prerequisites

Although this is a beginner SQL project, you'll need some solid skills in Python and data analysis before taking it on:

Step-by-Step Instructions

  1. Explore the structure and contents of the Crunchbase startup investments dataset
  2. Process the large dataset in chunks and load into an SQLite database
  3. Analyze fundraising rounds data to identify trends and derive insights
  4. Examine the most successful startup verticals based on total funding raised
  5. Identify the most active investors by number of deals and total amount invested

Expected Outcomes

Upon completing this guided SQL project, you'll gain practical skills and experience, including:

  • Applying pandas and SQLite to analyze real-world startup investment data
  • Handling large datasets effectively through chunking and efficient data types
  • Integrating pandas DataFrames with SQL databases for scalable data analysis
  • Deriving actionable insights from fundraising data to understand startup success
  • Building a project for your portfolio showcasing pandas and SQLite skills

Relevant Links and Resources

3. Analyzing CIA Factbook Data Using SQL

Difficulty Level: Beginner

Overview

In this beginner-level guided project, you'll step into the role of a data analyst exploring the CIA World Factbook, a compendium of country statistics. Using SQL queries in Jupyter Notebook, you'll analyze demographic data like population, population growth, birth rates, and death rates to uncover insights about countries worldwide. This project focuses on honing your SQL skills in a real-world context.

Tools and Technologies

  • SQL
  • Jupyter Notebook

Prerequisites

To get the most out of this project, you should be comfortable with:

  • Writing SQL queries to select, filter, and sort data
  • Using SQL aggregate functions to calculate summary statistics
  • Grouping data and calculating group-level summary statistics
  • Employing subqueries to perform efficient SQL queries

Step-by-Step Instructions

  1. Get acquainted with Jupyter Notebook for running SQL queries
  2. Review the structure and contents of the CIA World Factbook dataset
  3. Calculate key summary statistics for the demographic indicators
  4. Identify outliers in the data that may warrant further investigation
  5. Explore average population and land area across countries
  6. Determine the most densely populated countries in the dataset
  7. Consider additional analyses to derive further insights

Expected Outcomes

Upon completing this beginner SQL project, you will have:

  • Strengthened your SQL querying skills using real-world data
  • Gained experience working with SQL in Jupyter Notebook
  • Discovered intriguing demographic insights about world countries
  • Practiced deriving meaningful findings from data

Relevant Links and Resources

4. Exploring Squirrel Census Data

Difficulty Level: Beginner

Overview

In this beginner-level independent SQL project idea, you'll analyze data from the Squirrel Census to gain insights into squirrel populations and behaviors. You'll begin by importing and exploring the dataset. Using SQL, you'll write queries to uncover patterns, such as population density, activity trends, and environmental impacts. This project will enhance your data analysis skills through a unique and engaging dataset.

Tools and Technologies

  • SQL
  • Databases
  • Data analysis

Prerequisites

To successfully complete this project, you should be comfortable working with SQL and databases, such as:

  • Basic SQL commands and querying
  • Data manipulation and aggregation in SQL
  • Experience with importing and exploring datasets

Step-by-Step Instructions

  1. Download the Squirrel Census dataset from NYC OpenData
  2. Import the dataset into your SQL database
  3. Explore the dataset to understand its structure and columns
  4. Write SQL queries to analyze squirrel population density by location
  5. Investigate activity trends, such as running, foraging, and other behaviors
  6. Examine the impact of environmental factors like time of day and location on squirrel behaviors
  7. Visualize your findings using SQL queries and charting tools

Expected Outcomes

Upon completing this beginner SQL project, you'll have gained valuable skills and experience, including:

  • Proficiency in using SQL for data analysis
  • Experience with importing and analyzing unique real-world datasets
  • Ability to derive insights from squirrel census data
  • Understanding of how to investigate animal populations and behaviors using SQL

Relevant Links and Resources

Additional Resources

5. Designing and Creating a Database

Difficulty Level: Beginner

Overview

In this hands-on guided project, you'll step into the role of a data engineer tasked with converting historical Major League Baseball game statistics from a large CSV file into a robust, normalized SQL database optimized for analysis. You'll design a database schema, create tables using SQL, and migrate data from CSV files. This project will strengthen your data engineering skills as you work with real-world data, applying data modeling and SQL to enable efficient data storage and querying.

Tools and Technologies

  • SQLite
  • CSV
  • R
  • Jupyter Notebook

Prerequisites

To successfully complete this project, you should have the following foundational SQL skills:

  • Connecting to and querying SQLite databases using SQL
  • Creating, modifying, and populating normalized database tables
  • Writing complex SQL queries to analyze data across multiple tables
  • Organizing SQL queries for readability using formatting and views

Step-by-Step Instructions

  1. Explore the raw MLB game data CSV file to understand its structure and contents
  2. Design a normalized database schema to efficiently store the data
  3. Create empty tables in SQLite according to your schema design
  4. Migrate data from the CSV file into the appropriate database tables
  5. Verify data integrity and table relationships with SQL queries
  6. Analyze the migrated data using complex SQL queries that join multiple tables
  7. Document your schema design and data migration process

Expected Outcomes

By completing this beginner SQL project, you'll gain practical experience and valuable skills, including:

  • Designing normalized database schemas for efficient storage and querying
  • Creating and populating database tables using SQL
  • Migrating data from CSV files into a relational database
  • Querying a multi-table database to verify data integrity and surface insights
  • Applying data modeling and SQL skills to real-world data and business objectives

Relevant Links and Resources

6. Customers and Products Analysis Using SQL

Difficulty Level: Intermediate

Overview

In this guided project, you'll step into the role of a data analyst at a scale model car company. You'll use SQL skills like joins, subqueries, and common table expressions (CTEs) to explore the company's sales database and provide data-driven answers to key business questions about inventory, customers, and marketing. By analyzing product, order, and customer data, you'll identify which products to prioritize, how to segment customers, and how much to spend acquiring new customers. Through hands-on practice with a real database, you'll showcase your ability to use SQL to solve actual business problems.

Tools and Technologies

  • SQL
  • Joins
  • Subqueries
  • Common Table Expressions (CTEs)

Prerequisites

To successfully complete this SQL project, you should be comfortable with the following SQL skills:

  • Nesting queries to extract data meeting specific criteria
  • Employing different types of subqueries in SQL statements
  • Constructing SQL queries using CTEs
  • Writing SQL queries to scale data analysis projects

Step-by-Step Instructions

  1. Explore the database schema to understand the table structures and relationships
  2. Use joins to combine data from multiple tables and analyze product sales
  3. Aggregate data to identify top-selling and low-inventory products to prioritize
  4. Segment customers by purchase history and location to target marketing efforts
  5. Calculate key metrics like customer lifetime value to optimize acquisition spend
  6. Provide data-driven recommendations to business stakeholders based on your findings

Expected Outcomes

Upon completing this SQL project, you'll have gained valuable SQL skills and experience, including:

  • Practical knowledge of using joins, subqueries, and CTEs to extract insights from data
  • Experience analyzing sales data to inform product, inventory, and marketing decisions
  • Hands-on practice using SQL to solve real-world business problems
  • A project for your portfolio showcasing your SQL and data analysis skills to employers

Relevant Links and Resources

7. Building a Database for Crime Reports

Difficulty Level: Intermediate

Overview

In this guided project from Dataquest's Data Engineering career path, you'll step into the role of a database administrator tasked with building a PostgreSQL database to store and manage data on actual crime reports in Boston. By applying your skills in database design, table creation, data loading, and user management, you'll develop an organized system for this important real-world dataset. This hands-on project provides valuable experience in efficiently structuring databases to handle large, complex data.

Tools and Technologies

  • PostgreSQL
  • Python
  • Jupyter Notebook

Prerequisites

To successfully complete this project, you should be comfortable with:

  • Understanding the basics of PostgreSQL and how it differs from other databases
  • Creating tables in PostgreSQL with the appropriate data types
  • Importing data from CSV files into PostgreSQL tables
  • Managing PostgreSQL users and applying security best practices

Step-by-Step Instructions

  1. Create a new database to store the crime report data
  2. Examine the raw data files to determine the table schema and data types
  3. Write the SQL commands to create tables that match the data structure
  4. Load the crime report data from CSV files into the appropriate tables
  5. Set up user groups and roles to control access to the database
  6. Test the database by running queries to retrieve and analyze the data

Expected Outcomes

By completing this SQL project, you'll gain practical experience and valuable, transferable skills, including:

  • Designing and implementing a PostgreSQL database for a real-world use case
  • Creating tables with the optimal schema and data types for the dataset
  • Efficiently loading large datasets into a database from external files
  • Managing database access through user groups and roles to ensure security
  • Querying the data to extract meaningful insights about crime patterns

Relevant Links and Resources

8. Answering Business Questions using SQL

Difficulty Level: Intermediate

Overview

In this hands-on project, you'll step into the role of a data analyst for the Chinook online music store. Using complex SQL techniques like subqueries, joins, set operations, and aggregate functions, you'll analyze sales data to answer real business questions. This project allows you to apply SQL skills to extract insights from a complex database, create visualizations to understand trends, and provide data-driven recommendations to stakeholders.

Tools and Technologies

  • SQL
  • SQLite
  • Jupyter Notebook

Prerequisites

To successfully complete this project, you should be comfortable with:

  • Joining data across multiple tables using SQL joins
  • Writing complex SQL queries to analyze data
  • Organizing SQL queries using formatting and views
  • Connecting to and querying SQLite databases

Step-by-Step Instructions

  1. Familiarize yourself with the Chinook database schema and table relationships
  2. Write SQL queries to extract relevant data to answer specific business questions
  3. Combine data from multiple tables using joins to get a comprehensive view
  4. Use aggregate functions to calculate key metrics and generate insights
  5. Create visualizations to identify trends and effectively convey your findings
  6. Interpret your results and provide actionable recommendations to business stakeholders

Expected Outcomes

Upon completing this SQL project, you'll have gained valuable skills and experience, including:

  • Practical experience applying advanced SQL techniques to real-world data
  • Ability to write complex queries to extract meaningful insights from databases
  • Understanding of how to combine and analyze data from multiple related tables
  • Practice interpreting results and making data-driven business recommendations
  • A project showcasing your SQL and data analysis skills to employers

Relevant Links and Resources

9. SQL Window Functions for Northwind Traders

Difficulty Level: Advanced

Overview

In this project, you'll step into the role of a data analyst at Northwind Traders, a global gourmet food distributor. Using advanced SQL techniques like window functions and common table expressions (CTEs) on the company's database, you'll analyze sales data to provide actionable insights that drive strategic business decisions. This hands-on project allows you to apply your SQL skills to a real-world scenario, strengthening your ability to construct complex queries, interpret results, and make data-driven recommendations.

Tools and Technologies

  • SQL
  • PostgreSQL
  • Window functions
  • Common Table Expressions (CTEs)

Prerequisites

To successfully complete this SQL project, you should have the following skills:

Step-by-Step Instructions

  1. Explore the Northwind database schema to understand the tables and relationships
  2. Construct queries using window functions to analyze employee performance, product sales, and customer behavior
  3. Use CTEs to build modular, readable queries for sales analysis across categories, regions, and time
  4. Interpret query results to identify trends, top performers, and growth opportunities
  5. Summarize your findings and provide recommendations to guide company strategy

Expected Outcomes

Upon completing this SQL project, you'll have gained valuable skills and experience, including:

  • Practical understanding of applying window functions and CTEs to real-world data
  • Ability to construct sophisticated SQL queries to answer complex business questions
  • Experience in analyzing sales data to surface insights and drive decisions
  • Skill in interpreting and communicating query results to non-technical stakeholders

Relevant Links and Resources

Additional Resources

10. Fraud Detection with SQL

Difficulty Level: Advanced

Overview

In this independent SQL project idea, you'll work with multiple CSV files to create a database schema and database, then query your new database to identify potentially fraudulent transactions. Fraud is everywhere these days, and while there are emerging technologies that employ machine learning and artificial intelligence to detect fraud, many instances still require strong data analytics to find abnormal charges. You'll apply SQL skills to analyze historical credit card transactions and consumption patterns in order to identify possible fraudulent transactions.

Tools and Technologies

  • SQL
  • PostgreSQL
  • Entity Relationship Diagrams (ERDs)
  • Python
  • Pandas
  • Plotly Express
  • SQLAlchemy

Prerequisites

To successfully complete this project, you should be comfortable with the following:

  • SQL fundamentals like querying, grouping data, joins, subqueries, and filtering data
  • Creating database schemas and tables
  • Importing data from CSV files into a database
  • Basic Python programming for data analysis
  • Using Python libraries like Pandas for data manipulation and analysis

Step-by-Step Instructions

  1. Define a database model to store the credit card transactions data and create a new PostgreSQL database using your model. Create an entity relationship diagram (ERD) by inspecting the provided CSV files.
  2. Create a database schema on PostgreSQL and populate your database from the CSV files provided. Import the data from the corresponding CSV files after creating the schema.
  3. Analyze the data to identify possible fraudulent transactions:
    • Find the top 100 highest transactions during early morning hours (7-9 AM)
    • Count transactions less than $2.00 per cardholder to check for hacked cards
    • Identify the top 5 merchants prone to being hacked with small transactions
    • Create views for reusable queries
    • Create a report for fraudulent transactions of top customers using Python and data visualization libraries
    • Analyze outlier/anomalous transactions using techniques like standard deviation and interquartile range

Expected Outcomes

Upon completing this SQL project, you'll have gained valuable skills and experience, including:

  • Designing a database schema to store financial transactions data
  • Querying a database using complex SQL statements to uncover anomalous transactions
  • Applying data analysis techniques to identify outliers and potentially fraudulent activity
  • Communicating findings through visualizations and a report

Relevant Links and Resources

Additional Resources

How to prepare for a career leveraging your SQL portfolio projects

As you build your SQL project portfolio, it's important to also prepare for your future career by understanding the skills and qualifications employers are looking for. The sections below will guide you through the key steps to get career-ready.

Research SQL job postings

Start by researching current job postings for roles that require SQL skills, such as data analyst, database administrator, or business intelligence analyst. This will give you a clear picture of the qualifications, knowledge, and skills employers are seeking. Some top sites to search for SQL-related jobs include:

As you review job descriptions, take note of common requirements like:

  • Proficiency in SQL and relational databases
  • Experience with specific database platforms (e.g., MySQL, PostgreSQL, SQL Server)
  • Knowledge of data modeling, database design, and optimization
  • Familiarity with data analysis tools and techniques
  • Strong problem-solving and communication skills

Keep in mind that SQL remains a vital skill for data-related roles, with SQL ranking among the top programming languages in 2024. According to a recent StackOverflow developer survey, 90,000 developers revealed that SQL ranks as the fourth most popular programming language.

Prepare for success

As you work through the SQL project ideas above, it's important to also think ahead to your future career and what employers will be looking for. Here are some ideas on how to learn SQL to set yourself up for success:

  • Master SQL fundamentals: Ensure you have a solid grasp of core SQL concepts like querying, filtering, joining tables, and aggregating data. Dataquest's SQL Fundamentals skill path is a great place to start.
  • Diversify your SQL skills: In addition to the basics, learn more advanced SQL techniques like complex joins, subqueries, and window functions. Familiarity with different SQL dialects and database platforms is also valuable.
  • Combine SQL with other tools: Employers often look for SQL combined with skills like Python, R, Tableau, or Power BI for data analysis and visualization roles. Consider expanding your toolkit to become a more well-rounded candidate.
  • Engage with the SQL community: Participate in SQL communities, attend local meetups, or SQL Saturdays, and connect with other professionals to learn best practices, get project ideas, and grow your network. You never know where your next opportunity might come from!
  • Polish your resume: Highlight your achievements and quantify the impact of your SQL projects on your resume. We can help you to optimize your resume for SQL-related roles.
  • Prepare for interviews: Practice common SQL interview questions using our guide on common interview questions and answers for SQL-related roles.

Showcase your SQL portfolio projects

Highlight your best SQL projects on platforms like GitHub, your personal website or blog. Use storytelling to explain the problem you solved, your approach, and the impact of your work. Having a strong portfolio can help you stand out to potential employers.

When you should start applying

When it comes to applying for SQL-related jobs, don't wait until you've checked every box. If you have a strong foundation and can demonstrate your skills with the diversified SQL projects in your portfolio, start applying when you meet 70-80% of the job requirements. Many employers are willing to train candidates who showcase potential and an eagerness to learn.

Conclusion

If you're serious about launching or advancing your SQL career, working on real projects is key. Hands-on practice will help you gain the skills employers want and build an impressive portfolio.

The 10 SQL portfolio projects we've shared are an excellent starting point, covering diverse datasets and analytical challenges to grow your abilities. Choose one that interests you and just jump right in!

The most important thing is to keep practicing and applying what you learn. Stretch yourself with new challenges, refine your projects, and share your work in the Dataquest Community for valuable feedback.

Mike Levy

About the author

Mike Levy

Mike is a life-long learner who is passionate about mathematics, coding, and teaching. When he's not sitting at the keyboard, he can be found in his garden or at a natural hot spring.