Wisdom announced its Digital Customer Experience Series – Europe edition, to be held virtually on 20 – 21 April 2022 and CXM is pleased to support this event as a media partner. The event will explore the changing customer expectations in the European market with experts and senior representatives from top organisations across the world….
The post Wisdom’s digital CX series will be held in April: get your discount today! appeared first on Customer Experience Magazine.
Author: Franz Malten Buemann
-
Wisdom’s digital CX series will be held in April: get your discount today!
-
How blockchain could solve the advertising sector’s challenges
There are over 6,500 different cryptocurrencies, all varying in size of market capitalisation, which have different followings and trading volumes. Some of these are meme coins that have a supporting business model flimsier than a house of cards. However, the vast majority are new technologies being created that will disrupt practically everything we know and do in…
The post How blockchain could solve the advertising sector’s challenges appeared first on Customer Experience Magazine. -
The lurkers
It’s frustrating for anyone who leads.
If everyone who says that they’re a contributor/member/supporter/fan/long-term customer showed up, huge things would happen.
So we spend a lot of time hustling to get the lurkers to take action. Post again! Create more incentives! Dumb it down! Most of all, focus on creating urgency.
This isn’t how progress actually happens.
The 95% who lurk will almost always lurk. That’s okay.
The place to focus is on the 5%. Because when their persistent, consistent and generous action begins to add up, change happens. And that brings the lurkers along. It might even activate them. They’ll catch up when they need to.
There’s nothing wrong with lurkers. Lurkers are potential action-takers.
For now, though, our focus, our energy and our gratitude is for the people who are already showing up.
-
Sign up for Product Specific Free Developer Edition Org
Last Updated on March 21, 2022 by Rakesh Gupta Big Idea or Enduring Question: How to sign up for the product-specific developer orgs? Objectives: After reading this blog, you’ll be able to: Sign up for Financial Service Cloud developer org Sign up for Salesforce CPQ developer org Sign up for Tableau
The post Sign up for Product Specific Free Developer Edition Org appeared first on Automation Champion. -
Easiest Way to View Organization Daily Limits
Last Updated on March 21, 2022 by Rakesh Gupta Big Idea or Enduring Question: How to track your organization daily maximum and the remaining allocation limits? Objectives: After reading this blog, you’ll be able to: Understand maximum and remaining allocated limit Track all limits in once place via REST API
The post Easiest Way to View Organization Daily Limits appeared first on Automation Champion. -
Don’t be that marketer
submitted by /u/AlistairVigier [link] [comments]
-
The Inside Scoop on Salesforce Scoping Rules
Meet Salesforce ‘Scoping Rules’, the sister of the (similarly named) ‘Restriction Rules’. Scoping rules are intended to help users by showing the records they need access to and hiding less important records, therefore reducing the ‘scope’ of what a user sees. In this article, we’ll… Read More
-
How We’re Helping Our Remote Team Feel More Connected
Numerous resources talk about how to keep remote employees engaged — and that’s hundreds more than there were before much of the global workforce went remote in 2020.In 2018, I shared a few of our People team initiatives focused on internal community-building, but a lot has changed in four years, and we have new activities on the horizon for 2022.In addition to the ever-evolving landscape of remote work in a time of a pandemic, we instituted a four-day workweek in 2020, which had an impact on the amount non-work things we wanted to ask of our team. We just switched from quarterly to monthly All Hands, which are recorded for anyone who cannot attend.Our team engagement scores, which I measure with a survey every six months, have decreased from the beginning of 2021. Decreasing engagement scores is something tied to many factors including team turnover, product direction, and external influences. One thing that has been highlighted in our surveys is the reduction in team-building events like casual Zoom hangouts, guest speakers, and in-person events.And we’re not alone. In our 2022 State of Remote Work, a small majority (52%) of folks who started working remotely due to COVID-19 say they feel less connected to their coworkersIn 2022, we’re diving back into more intentional team-building both asynchronously, synchronously, plus we’re planning the occasional in-person meetup where available. Here’s how we’re approaching all of these events and all of our current initiatives.Culture and connection: Who is responsible?Culture is a continual evolution at any company. While every team and individual contributes to the broader culture, the People team at Buffer is responsible for helping facilitate the processes and events for connection and engagement to thrive.Many other pieces feed into the larger, nebulous thing that is culture: values, company goals, events, internal communication, managers and so much more. That said, events and teammate connection are two of the main areas of focus for me going into 2022.Last year, the important but never-as-urgent work of team-building easily fell to the bottom of the list in the scheme of other projects. Now, we’ve intentionally re-shifted a few of the larger roles within the People-Finance team to have more clear ownership. We hired a new teammate to focus completely on recruitment and hiring (hi, Janet!) and have optimized the existing strengths of our broader People-Finance team, to make my singular focus on culture and engagement.This was the first strategic decision we made to address our overall team engagement: someone has to be the designated “driver” of a more values-based culture of connection and engagement. Without clear ownership and burden on one or more individuals, the team can flounder.Remote workplace event philosophyIn 2022, we’re moving forward with initiatives of all categories: synchronous, asynchronous, in-person, and remote, plus, we’re getting more creative with how we hold those events and are looking to be as inclusive as possible of all timezones and personalities.We tend to approach projects with a mentality that there is no one-size-fits-all. Some of the things we try will work for some and not for others. Here’s how we break down event categories along with expectations are for attendance. Note: Our required events and timezone guidance are in flux as we experiment with different approaches.A screenshot of our internal event guidelinesBeing explicit about the attendance expectations helps to alleviate confusion and ensures we don’t ask too much of teammates — especially with a four-day workweek.Most of the initiatives we’re going to do in 2022 fall into the “extracurricular” category, as we have heard that most people can get their work done in four days, but that for about a quarter of the company, they regularly have to work a bit over the four days to get their work accomplished. We want to provide the opportunity to engage with the rest of the team, without adding additional work to their plates.The tried-and-true initiativesI’m the broken record when it comes to this: Pair calls and masterminds are invaluable. If teammates can make it work, we ask them to first give these a chance.Pair calls (casual, one-on-one chats)We love Donut for automating our rotating weekly one-on-one chats with a different teammate.Donut artificially creates those moments that would happen naturally if we were all located in the same office: You’d see someone in the hall, stop for 10-20 minutes, and catch up about life. Those moments don’t happen in a remote environment. You have to make them happen, and you have to create an expectation of team-wide participation.In the past few years, usage of this program has ebbed and flowed — and the general sentiment is that teammates love it but sometimes opt-out during busier periods of work expectations. We ask all new teammates to participate in this program, especially for the first 90 days of their onboarding.For 2022, we put all teammates into our #people-pairs channel and allowed them to opt-out individually. Pair calls take 20 to 30 minutes and are meant to be very light-weight and yet, they add up over time in a really powerful way.Masterminds (deeper connections)Masterminds are meant to create a deep bond with a teammate you don’t work with directly, but hopefully have some things in common — it’s a space to share successes, failures, life events. Some matches work great, others might take some time. Some partnerships last well past tenure at Buffer!Teammates are welcome to opt-out any time of masterminds for any reason, but we’ve seen clear data to show that when mastermind pairings work, it works very well. Here’s some of the feedback we’ve received in the past:“I’ve found that opening up with my buddy has helped me open up with my managers.”“Talking to someone outside of my team is really valuable for me.”“I think it’s been really helpful to have a designated space to share and grow with another Bufferoo who isn’t my manager or someone on my team.”“A great opportunity to connect with teammates and dive deeper into conversations that might not happen in a typical pair call.”New cultural initiatives for 2022SynchronousBuffer TED talksOne of our first experiments for 2022 is monthly TED-style/lunch-and-learn talks from amongst our teammates! These will be 20-minutes long and then we’ll have 10-20 minutes of optional hanging out after. We might also bring in external speakers for these. Each talk will then be shared with a recording and a space for comments for the conversation to continue asynchronously. We hope to build out a huge library of teammate talks.Specific groupsSome of our most successful team initiatives have been around specific, special-interest groups with a clear topic. Whereas whenever we have broad, open-invitation events, we see a very poor turnout. Book clubs and side-project discussions are two groups that we’ll encourage even more this year. These are two of the most active Slack channels we have, so it’s clear where the most passionate teammate conversations are happening, and beneficial to move those to a Zoom call.Monthly All-HandsWe’re moving to monthly All-Hands (compared to our quarterly cadence last year), which allows for more frequent touch-points and chances to see teammates on Zoom. Some of the most popular features of All-Hands meetings include small-group breakouts and unique teammate speakers.We’re planning to invite more external speakers, especially to support our DEI goals and initiatives. We’ll share a lot more on this approach in future posts.AsynchronousSlack as our team water coolerSlack continues to be our virtual water cooler and we have seen great success with recurring prompts to spark conversation in that channel.Weekly Slack prompts (that we’ve tried before and will do again!)In our water cooler channel, we use Donut’s feature to send out regular questionsIn our gratitude channel, we might ask What are you grateful for today?In our books channel, we might ask What are you currently reading? What book has made the most impact on your life?In a self-improvement channel, we might ask What are you working on about yourself lately?Donut prompt in SlackFor November 2021, we tried out a daily gratitude prompt (inspired by Passion Planner’s 21-day gratitude challenge) and ended up with really great discussions over the days we posted this in November.Screenshot from the gratitude challengeInternal podcast episodesAnother asynchronous initiative we are leveraging this year: regular, internal podcast episodes. We’re launching this in a lightweight, quick way, simply recording some of the existing conversations that already happen every week. We might iterate on a more polished version in the future, but for now, we want to share the latest thoughts on our exec’s team’s mind or share a profile of a teammate.Quick questions with teammatesIn the same theme as using audio and other asynchronous formats, we’ve done weekly “Quick Question” video interviews with new teammates (and some longer-tenured teammates!) in our weekly company newsletter.Here’s a sample with Dave and Lexi from our Advocacy team!0:00/1×Here’s Lexi and Dave from Buffer’s advocacy team answering some quick questionsIn-PersonRegional meetupsWhile this is very much in the early stages, we are exploring the model of regionally-based meetups and encouraging local gatherings for our company in 2022. This is in place of a company-wide, one-location meetup, which we feel is still a bit too difficult and unpredictable given international travel considerations.We’ll share a lot more coming up as this takes shape, but it’s a piece of the larger engagement puzzle as we look ahead.Over to YouWhen it comes to keeping a team of nearly 90 teammates spread out across the globe connected and engaged, there isn’t one solution or one easy approach. It takes time, intentionality, and team accountability. What have you tried with your team, or which of these would you like to learn more about? Send us a tweet!
-
How Many Flows Should You Have per Object?
You may have heard the phrase, “one flow per object,” but is this rule still relevant? Over time, the message has changed. When it comes to Salesforce Flow design patterns, there is rarely a straightforward path to the answer; there are many factors to take… Read More
-
An Introductory SQL Tutorial: How to Write Simple Queries
How to Query a SQL Database:
Make sure that you have a database management application (ex. MySQL Workbench, Sequel Pro).
If not, download a database management application and work with your company to connect your database.
Understand your database and its hierarhcy.
Find out which fields are in your tables.
Begin writing a SQL query to pull your desired data.Ever heard of SQL? You may have heard about it in the context of data analysis, but never thought it would apply to you as a marketer. Or, you may have thought, “That’s for the advanced data users. I could never do that.”
Well, you couldn’t be more wrong! The most successful marketers are data-driven, and one of the most important parts of being data-driven is collecting data from databases quickly. SQL is the most popular tool out there for doing just that.
If your company already stores data in a database, you may need to learn SQL to access the data. But not to worry — you’re in the right place to get started. Let’s jump right in.Why Use SQL?
SQL (often pronounced like “sequel”) stands for Structured Query Language, and it’s used when companies have a ton of data that they want to manipulate. The beauty of SQL is that anyone working at a company that stores data in a relational database can use it. (And chances are, yours does.)
For example, if you work for a software company and want to pull usage data on your customers, you can do that with SQL. If you’re helping develop a website for an ecommerce company that has data about customer purchases, you can use SQL to find out which customers are purchasing which products. Of course, these are just a few of many possible applications.
Think about it this way: Have you ever opened a very large data set in Excel, only for your computer to freeze or even shut down? SQL allows you to access only certain parts of your data at a time so you don’t have to download all the data into a CSV, manipulate it, and possibly overload Excel. In other words, SQL takes care of the data analysis that you may be used to doing in Excel.
How to Write Simple SQL Queries
Before we begin, make sure you have a database management application that will allow you to pull data from your database. Some options include MySQL or Sequel Pro.
Start by downloading one of these options, then talk to your company’s IT department about how to connect to your database. The option you choose will depend on your product’s back end, so check with your product team to make sure you select the correct one.
Understand the hierarchy of your database
Next, it’s important to become accustomed to your database and its hierarchy. If you have multiple databases of data, you’ll need to hone in on the location of the data you want to work with.
For example, let’s pretend we’re working with multiple databases about people in the United States. Enter the query “SHOW DATABASES;”. The results may show that you have a couple of databases for different locations, including one for New England.
Within your database, you’ll have different tables containing the data you want to work with. Using the same example above, let’s say we want to find out which information is contained in one of the databases. If we use the query “SHOW TABLES in NewEngland;”, we’ll find that we have tables for each state in New England: people_connecticut, people_maine, people_massachusetts, people_newhampshire, people_rhodeisland, and people_vermont.
Finally, you need to find out which fields are in the tables. Fields are the specific pieces of data that you can pull from your database. For example, if you want to pull someone’s address, the field name may not just be “address” — it may be separated into address_city, address_state, address_zip. In order to figure this out, use the query “Describe people_massachusetts;”. This provides a list of all of the data that you can pull using SQL.
Let’s do a quick review of the hierarchy using our New England example:Our database is: NewEngland.
Our tables within that database are: people_connecticut, people_maine, people_massachusetts, people_newhampshire, people_rhodeisland, and people_vermont.
Our fields within the people_massachusetts table include: address_city, address_state, address_zip, hair_color, age, first_name, and last_name.Now, let’s write some simple SQL queries to pull data from our NewEngland database.
Basic SQL Queries
To learn how to write a SQL query, let’s use the following example:
Who are the people who have red hair in Massachusetts and were born in 2003 organized in alphabetical order?
SELECT
SELECT chooses the fields that you want displayed in your chart. This is the specific piece of information that you want to pull from your database. In the example above, we want to find the people who fit the rest of the criteria.
Here is our SQL query:
SELECT
first_name,
last_name
;
FROM
FROM pinpoints the table that you want to pull the data from. In the earlier section, we learned that there were six tables for each of the six states in New England: people_connecticut, people_maine, people_massachusetts, people_newhampshire, people_rhodeisland, and people_vermont. Because we’re looking for people in Massachusetts specifically, we’ll pull data from that specific table.
Here is our SQL query:
SELECT
first_name,
last_name
FROM
people_massachusetts
;
WHERE
WHERE allows you to filter a query to be more specific. In our example, we want to filter our query to include only people with red hair who were born in 2003. Let’s start with the red hair filter.
Here is our SQL query:
SELECT
first_name,
last_name
FROM
people_massachusetts
WHERE
hair_color = ‘red’
;
hair_color could have been part of your initial SELECT statement if you’d wanted to look at all of the people in Massachusetts along with their hair color. But if you want to filter to see only people with red hair, you can do so with a WHERE statement.
BETWEEN
Besides equals (=), BETWEEN is another operator you can use for conditional queries. A BETWEEN statement is true for values that fall between the specified minimum and maximum values.
In our case, we can use BETWEEN to pull records from a specific year, like 2003. Here’s the query:
SELECT
first_name,
last_name
FROM
people_massachusetts
WHERE
birth_date BETWEEN ‘2003-01-01’ AND ‘2003-12-31’
;
AND
AND allows you to add additional criteria to your WHERE statement. Remember, we want to filter by people who had red hair in addition to people who were born in 2003. Since our WHERE statement is taken up by the red hair criteria, how can we filter by a specific year of birth as well?
That’s where the AND statement comes in. In this case, the AND statement is a date property — but it doesn’t necessarily have to be. (Note: Check the format of your dates with your product team to make sure they are in the correct format.)
Here is our SQL query:
SELECT
first_name,
last_name
FROM
people_massachusetts
WHERE
hair_color = ‘red’
AND
birth_date BETWEEN ‘2003-01-01’ AND ‘2003-12-31’
;
OR
OR can also be used with a WHERE statement. With AND, both conditions must be true to appear in results (e.g., hair color must be red and must be born in 2003). With OR, either condition must be true to appear in results (e.g., hair color must be red or must be born in 2003).
Here’s what an OR statement looks like in action:
SELECT
first_name,
last_name
FROM
people_massachusetts
WHERE
hair_color = ‘red’
OR
birth_date BETWEEN ‘2003-01-01’ AND ‘2003-12-31’
;
NOT
NOT is used in a WHERE statement to display values in which the specified condition is untrue. If we wanted to pull up all Massachusetts residents without red hair, we can use the following query:
SELECT
first_name,
last_name
FROM
people_massachusetts
WHERE NOT
hair_color = ‘red’
;
ORDER BY
Calculations and organization also can be done within a query. That’s where the ORDER BY and GROUP BY functions come in. First, we’ll look at our SQL queries with the ORDER BY and then GROUP BY functions. Then, we’ll take a brief look at the difference between the two.
An ORDER BY clause allows you to sort by any of the fields that you have specified in the SELECT statement. In this case, let’s order by last name.
Here is our SQL query:
SELECT
first_name,
last_name
FROM
people_massachusetts
WHERE
hair_color = ‘red’
AND
birth_date BETWEEN ‘2003-01-01’ AND ‘2003-12-31’
ORDER BY
last_name
;
GROUP BY
GROUP BY is similar to ORDER BY, but aggregates data that has similarities. For example, if you have any duplicates in your data, you can use GROUP BY to count the number of duplicates in your fields.
Here is your SQL query:
SELECT
first_name,
last_name
FROM
people_massachusetts
WHERE
hair_color = ‘red’
AND
birth_date BETWEEN ‘2003-01-01’ AND ‘2003-12-31′
GROUP BY
last_name
;
ORDER BY VS. GROUP BY
To show the difference between an ORDER BY statement and a GROUP BY statement, let’s step outside our Massachusetts example briefly to look at a very simple dataset. Below is a list of four employees’ ID numbers and names.If we were to use an ORDER BY statement on this list, the names of the employees would get sorted in alphabetical order. The result would look like this:
If we were to use a GROUP BY statement instead, the employees would be counted based on the number of times they appeared in the initial table. Note that Peter appeared twice in the initial table, so the result would look like this:
With me so far? Okay, let’s return to the SQL query we’ve been creating about red-haired people in Massachusetts who were born in 2003.
LIMIT
Depending on the amount of data you have in your database, it may take a long time to run your queries. This can be frustrating, especially if you’ve made an error in your query and now need to wait before continuing. If you want to test a query, the LIMIT function lets you limit the number of results you get.
For example, if we suspect there are thousands of people who have red hair in Massachusetts, we may want to test out our query using LIMIT before we run it in full to make sure we’re getting the information we want. Let’s say, for instance, we only want to see the first 100 people in our result.
Here is our SQL query:
SELECT
first_name,
last_name
FROM
people_massachusetts
WHERE
hair_color = ‘red’
AND
birth_date BETWEEN ‘2003-01-01’ AND ‘2003-12-31’
ORDER BY
last_name
LIMIT
100
;
INSERT INTO
In addition to retrieving information from a relational database, SQL can also be used to modify the contents of a database. Of course, you’ll need permissions to make changes to your company’s data. But, in case you’re ever in charge of managing the contents of a database, we’ll share some queries you should know.
First is the INSERT INTO statement, which is for putting new values into your database. If we want to add a new person to the Massachusetts table, we can do so by first providing the name of the table we want to modify, and the fields within the table we want to add to. Next, we write VALUE with each respective value we want to add.
Here’s what that query could look like:
INSERT INTO
people_massachusetts (address_city, address_state, address_zip, hair_color, age, first_name, last_name)
VALUES
(Cambridge, Massachusetts, 02139, blonde, 32, Jane, Doe)
;
Alternatively, if you are adding a value to every field in the table, you don’t need to specify fields. The values will be added to columns in the order that they are listed in the query.
INSERT INTO
people_massachusetts
VALUES
(Cambridge, Massachusetts, 02139, blonde, 32, Jane, Doe)
;
If you only want to add values to specific fields, you must specify these fields. Say we only want to insert a record with first_name, last_name, and address_state — we can use the following query:
INSERT INTO
people_massachusetts (first_name, last_name, address_state)
VALUES
(Jane, Doe, Massachusetts)
;
UPDATE
If you want to replace existing values in your database with different values, you can use UPDATE. What if, for example, someone is recorded in the database as having red hair when they actually have brown hair? We can update this record with UPDATE and WHERE statements:
UPDATE
people_massachusetts
SET
hair_color = ‘brown’
WHERE
first_name = ‘Jane’
AND
last_name = ‘Doe’
;
Or, say there’s a problem in your table where some values for “address_state” appear as “Massachusetts” and others appear as “MA”. To change all instances of “MA” to “Massachusetts” we can use a simple query and update multiple records at once:
UPDATE
people_massachusetts
SET
address_state = ‘Massachusetts’
WHERE
address_state = MA
;
Be careful when using UPDATE. If you don’t specify which records to change with a WHERE statement, you’ll change all values in the table.
DELETE
DELETE removes records from your table. Like with UPDATE, be sure to include a WHERE statement, so you don’t accidentally delete your entire table.
Or, if we happened to find several records in our people_massachusetts table who actually lived in Maine, we can delete these entries quickly by targeting the address_state field, like so:
DELETE FROM
people_massachusetts
WHERE
address_state = ‘maine’
;
Bonus: Advanced SQL Tips
Now that you’ve learned how to create a simple SQL query, let’s discuss some other tricks that you can use to take your queries up a notch, starting with the asterisk.
* (asterisk)
When you add an asterisk character to your SQL query, it tells the query that you want to include all the columns of data in your results.
In the Massachusetts example we’ve been using, we’ve only had two column names: first_name and last_name. But let’s say we had 15 columns of data that we want to see in our results — it would be a pain to type all 15 column names in the SELECT statement. Instead, if you replace the names of those columns with an asterisk, the query will know to pull all of the columns into the results.
Here’s what the SQL query would look like:
SELECT
*
FROM
people_massachusetts
WHERE
hair_color = ‘red’
AND
birth_date BETWEEN ‘2003-01-01’ AND ‘2003-12-31’
ORDER BY
last_name
LIMIT
100
;
% (percent symbol)
The percent symbol is a wildcard character, meaning it can represent one or more characters in a database value. Wildcard characters are helpful for locating records that share common characters. They are typically used with the LIKE operator to find a pattern in the data.
For instance, if we wanted to get the names of every person in our table whose zip code begins with “02”, we can write this query:
SELECT
first_name,
last_name
WHERE
address_zip LIKE ‘02%’
;
Here, “%” stands in for any group of digits that follow “02”, so this query turns up any record with a value for address_zip that begins with “02”.
LAST 30 DAYS
Once I started using SQL regularly, I found that one of my go-to queries involved trying to find which people took an action or fulfilled a certain set of criteria within the last 30 days.
Let’s pretend today is December 1, 2021. You could create these parameters by making the birth_date span between November 1, 2021 and November 30, 2021. That SQL query would look like this:
SELECT
first_name,
last_name
FROM
people_massachusetts
WHERE
hair_color = ‘red’
AND
birth_date BETWEEN ‘2021-11-01’ AND ‘2021-11-30’
ORDER BY
last_name
LIMIT
100
;
But, that would require thinking about which dates cover the last 30 days, and you’d have to update this query constantly.
Instead, to make the dates automatically span the last 30 days no matter which day it is, you can type this under AND: birth_date >= (DATE_SUB(CURDATE(),INTERVAL 30))
(Note: You’ll want to double-check this syntax with your product team because it may differ based on the software you use to pull your SQL queries.)
Your full SQL query would therefore look like this:
SELECT
first_name,
last_name
FROM
people_massachusetts
WHERE
hair_color = ‘red’
AND
birth_date >= (DATE_SUB(CURDATE(),INTERVAL 30))
ORDER BY
last_name
LIMIT
100
;
COUNT
In some cases, you may want to count the number of times that a criterion of a field appears. For example, let’s say you want to count the number of times the different hair colors appear for the people you are tallying up from Massachusetts. In this case, COUNT will come in handy so you don’t have to manually add up the number of people who have different hair colors or export that information to Excel.
Here’s what that SQL query would look like:
SELECT
hair_color,
COUNT(hair_color)
FROM
people_massachusetts
AND
birth_date BETWEEN ‘2003-01-01’ AND ‘2003-12-31′
GROUP BY
hair_color
;
AVG
AVG calculates the average of an attribute in the results of your query, excluding NULL values (empty). In our example, we could use AVG to calculate the average age of Massachusetts residents in our query.
Here’s what our SQL query could look like:
SELECT
AVG(age)
FROM
people_massachusetts
;
SUM
SUM is another simple calculation you can do in SQL. It calculates the total value of all attributes from your query. So, if we wanted to add up all the ages of Massachusetts residents, we can use this query:
SELECT
SUM(age)
FROM
people_massachusetts
;
MIN and MAX
MIN and MAX are two SQL functions that give you the smallest and largest values of a given field. We can use it to identify the oldest and youngest members of our Massachusetts table:
This query will give us the record of the oldest:
SELECT
MIN(age)
FROM
people_massachusetts
;
And this query gives us the oldest:
SELECT
MAX(age)
FROM
people_massachusetts
;
JOIN
There may be a time when you need to access information from two different tables in one SQL query. In SQL, you can use a JOIN clause to do this.
(For those familiar with Excel formulas, this is similar to using the VLOOKUP formula when you need to combine information from two different sheets in Excel.)
Let’s say we have one table that has data of all Massachusetts residents’ user IDs and their birthdates. In addition, we have an entirely separate table containing all Massachusetts residents’ user IDs and their hair color.
If we want to figure out the hair color of Massachusetts residents born in the year 2003, we’d need to access information from both tables and combine them. This works because both tables share a matching column: user IDs.
Because we’re calling out fields from two different tables, our SELECT statement is also going to change slightly. Instead of just listing out the fields we want to include in our results, we’ll need to specify which table they’re coming from. (Note: The asterisk function may come in handy here so your query includes both tables in your results.)
To specify a field from a specific table, all we have to do is combine the name of the table with the name of the field. For example, our SELECT statement would say “table.field” — with the period separating the table name and the field name.
We’re also assuming a few things in this case:The Massachusetts birthdate table includes the following fields: first_name, last_name, user_id, birthdate
The Massachusetts hair color table includes the following fields: user_id, hair_colorYour SQL query would therefore look like:
SELECT
birthdate_massachusetts.first_name,
birthdate_massachusetts.last_name
FROM
birthdate_massachusetts JOIN haircolor_massachusetts USING (user_id)
WHERE
hair_color = ‘red’
AND
birth_date BETWEEN ‘2003-01-01’ AND ‘2003-12-31’
ORDER BY
last_name
;
This query would join the two tables using the field “user_id” which appears in both the birthdate_massachusetts table and the haircolor_massachusetts table. You’re then able to see a table of people born in 2003 who have red hair.
CASE
Use a CASE statement when you want to return different results to your query based on which condition is met. Conditions are evaluated in order. Once a condition is met, the corresponding result is returned and all following conditions are skipped over.
You can include an ELSE condition at the end in case no conditions are met. Without an ELSE, the query will return NULL if no conditions are met.
Here’s an example of using CASE to return a string based on the query:
SELECT
first_name,
last_name
FROM
people_massachusetts
CASE
WHEN hair_color = ‘brown’ THEN ‘This person has brown hair.’
WHEN hair_color = ‘blonde’ THEN ‘This person has blonde hair.’
WHEN hair_color = ‘red’ THEN ‘This person has red hair.’
ELSE ‘Hair color not known.’
END
;
Basic SQL Queries Marketers Should Know
Congratulations. you’re ready to run your own SQL queries! While there’s a lot more you can do with SQL, I hope you found this overview of the basics helpful so you can get your hands dirty. With a strong foundation of the basics, you’ll be able to navigate SQL better and work toward some of the more complex examples.
Editor’s note: This post was originally published in March 25 and has been updated for comprehensiveness.