Published
Edited
Feb 5, 2022
Insert cell
Insert cell
splitgraph`SELECT
":id", -- Socrata column ID
"regions",
"project_name",
"longitude",
"project_description",
"project_id",
"latitude",
"project_details_url"
FROM
"albany-data-socrata/capital-project-list-albany-with-lat-long-heub-836w:latest"."capital_project_list_albany_with_lat_long"
LIMIT 100;`
Insert cell
Insert cell
{
const [{ count }] = await splitgraph`
SELECT
count(0)
FROM
"albany-data-socrata/capital-project-list-albany-with-lat-long-heub-836w:latest"."capital_project_list_albany_with_lat_long"
LIMIT 100`;
return md`_There are ${count} rows in the supply-chains table_`;
}
Insert cell
Insert cell
{
let promise = splitgraph`SELECT foo FROM bar`;
return promise.catch(
error => html`<p class="observablehq--error">${error}</p}`
);
}
Insert cell
Insert cell
splitgraph`
SELECT exporter_group,
SUM(volume) AS volume
FROM "trase~supply-chains"."supply-chains"
GROUP BY exporter_group
ORDER BY volume DESC
LIMIT 10
`
Insert cell
Insert cell
{
const response = await fetch(
"https://data.splitgraph.com:443/trase/supply-chains/latest/-/rest/supply-chains?region_production_1=eq.SORRISO&limit=10"
);
return response.json();
}
Insert cell
Insert cell
async function splitgraph(strings) {
let query = strings[0] + "",
i = 0,
n = arguments.length;
while (++i < n) query += arguments[i] + "" + strings[i];
query = query.replace('"trase/', '"trase~');
query = query.replace('"trase-development/', '"trase-development~');
const options = {
method: "POST",
headers: {
Authorization: `Bearer ${await token()}`,
"Content-Type": "application/json"
},
body: JSON.stringify({ sql: query })
};
return fetch(
"https://data.token-train-fix-embeds.splitgraph.io/sql/query/ddn",
options
)
.then((response) => response.json())
.then((json) => {
if (!json.success)
throw new Error(json.error || "Failed to parse response");
return json.rows;
});
}
Insert cell
token = () =>
fetch("https://api.token-train-fix-embeds.splitgraph.io/auth/anonymous_access_token", {
method: "POST"
})
.then(response => response.json())
.then(json => json.access_token)
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more