Python Java C++ HTML CSS Bootstrap JavaScript jQuery AngularJS React Node.js TypeScript Django NumPy Pandas Matplotlib Seaborn Machine Learning Deep Learning Decipher XML

Introduction to Snowflake

Snowflake is a cloud-based data platform that allows storage, processing, and analytic solutions for structured and semi-structured data.

Snowflake separates storage and compute for scalability. It is widely used for data warehousing, analytics, and business intelligence.

Snowflake Basics

Databases, Schemas & Tables

-- Create database
CREATE DATABASE SalesDB;

-- Create schema
CREATE SCHEMA SalesSchema;

-- Create table
CREATE TABLE SalesSchema.Customers(
    CustomerID INT,
    Name STRING,
    Region STRING,
    TotalSpent FLOAT
);

-- Switch database and schema
USE DATABASE SalesDB;
USE SCHEMA SalesSchema;

-- List tables
SHOW TABLES;
      

Basic CRUD Operations

-- Insert data
INSERT INTO Customers (CustomerID, Name, Region, TotalSpent)
VALUES (1, 'Alice', 'North', 1200.50);

-- Select data
SELECT * FROM Customers;

-- Update data
UPDATE Customers SET TotalSpent=1300.75 WHERE CustomerID=1;

-- Delete data
DELETE FROM Customers WHERE CustomerID=1;
      

Snowflake Queries

Filtering & Sorting

SELECT * FROM Customers WHERE Region='North';
SELECT * FROM Customers ORDER BY TotalSpent DESC;
      

Aggregate Functions

SELECT COUNT(*) FROM Customers;
SELECT SUM(TotalSpent) FROM Customers;
SELECT AVG(TotalSpent) FROM Customers;
      

Grouping

SELECT Region, COUNT(*) FROM Customers GROUP BY Region;
      

Joins & Relationships

Inner Join

SELECT C.Name, O.OrderID
FROM Customers C
INNER JOIN Orders O ON C.CustomerID=O.CustomerID;
      

Left Join

SELECT C.Name, O.OrderID
FROM Customers C
LEFT JOIN Orders O ON C.CustomerID=O.CustomerID;
      

Advanced Snowflake

Views

CREATE OR REPLACE VIEW TopCustomers AS
SELECT Name, TotalSpent FROM Customers WHERE TotalSpent > 1000;

SELECT * FROM TopCustomers;
      

Cloning & Time Travel

-- Clone a table
CREATE TABLE Customers_Clone CLONE Customers;

-- Query historical data (Time Travel)
SELECT * FROM Customers AT (OFFSET => -3600);
      

Tasks & Streams

-- Create stream to track changes
CREATE OR REPLACE STREAM CustomerStream ON TABLE Customers;

-- Create task for scheduled processing
CREATE OR REPLACE TASK CustomerTask
  WAREHOUSE = my_warehouse
  SCHEDULE = 'USING CRON 0 12 * * *'
AS
INSERT INTO AuditTable SELECT * FROM CustomerStream;