{"id":"l-sql-1-1","courseId":"sql-for-analysts","lang":"en","kind":"intro","summary":"Find your way around the Cartwheel database, turn a vague request into a precise question, and answer it with SELECT, computed columns, ORDER BY and LIMIT.","html":"<p>Your first week at Cartwheel, a message lands from Rania Aziz, the CEO: “Which of our products are expensive but barely profitable? I want to look at pricing before the spring catalogue.” It sounds simple. It’s also a perfect example of the job: someone with a real decision to make asks a question in plain words, and you turn it into a query that answers exactly that question, no more and no less.</p>\n<p>Cartwheel is an online store for home and outdoor goods, selling in eight countries. Its SQLite database holds two years of history, from January 2024 to December 2025. Every query in this course runs against it, in your browser.</p>\n<h2 id=\"sec-1\" tabindex=\"-1\">Meet the database</h2>\n<p>Before writing the real query, look around. SQLite keeps a catalogue of its own tables in <code dir=\"ltr\">sqlite_schema</code> (older code calls it <code dir=\"ltr\">sqlite_master</code>, which still works):</p>\n<div class=\"code-block\" dir=\"ltr\" data-lang=\"sql\" data-run=\"sql\" data-index=\"0\"><div class=\"code-head\"><span class=\"code-title\">SQL</span><span class=\"code-actions\"><button type=\"button\" class=\"code-btn code-run\" data-action=\"run\" data-lang=\"sql\" data-index=\"0\" aria-label=\"Run this example\"><svg class=\"icon \" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z\"/></svg><span>Run</span></button><button type=\"button\" class=\"code-btn\" data-action=\"copy\" aria-label=\"Copy code\"><svg class=\"icon \" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"/><path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"/></svg><span>Copy</span></button></span></div><pre class=\"shiki\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#CF222E;--shiki-dark:#FF7B72\">SELECT</span><span style=\"color:#CF222E;--shiki-dark:#FF7B72\"> name</span></span>\n<span class=\"line\"><span style=\"color:#CF222E;--shiki-dark:#FF7B72\">FROM</span><span style=\"color:#1F2328;--shiki-dark:#E6EDF3\"> sqlite_schema</span></span>\n<span class=\"line\"><span style=\"color:#CF222E;--shiki-dark:#FF7B72\">WHERE</span><span style=\"color:#CF222E;--shiki-dark:#FF7B72\"> type</span><span style=\"color:#CF222E;--shiki-dark:#FF7B72\"> =</span><span style=\"color:#0A3069;--shiki-dark:#A5D6FF\"> 'table'</span><span style=\"color:#1F2328;--shiki-dark:#E6EDF3\">;</span></span></code></pre><div class=\"run-output\" data-run-output=\"0\" hidden></div></div>\n<p>Nine tables. To see one table’s columns and types, ask for its column list:</p>\n<div class=\"code-block\" dir=\"ltr\" data-lang=\"sql\" data-run=\"sql\" data-index=\"1\"><div class=\"code-head\"><span class=\"code-title\">SQL</span><span class=\"code-actions\"><button type=\"button\" class=\"code-btn code-run\" data-action=\"run\" data-lang=\"sql\" data-index=\"1\" aria-label=\"Run this example\"><svg class=\"icon \" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z\"/></svg><span>Run</span></button><button type=\"button\" class=\"code-btn\" data-action=\"copy\" aria-label=\"Copy code\"><svg class=\"icon \" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"/><path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"/></svg><span>Copy</span></button></span></div><pre class=\"shiki\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#CF222E;--shiki-dark:#FF7B72\">SELECT</span><span style=\"color:#CF222E;--shiki-dark:#FF7B72\"> name</span><span style=\"color:#1F2328;--shiki-dark:#E6EDF3\">, </span><span style=\"color:#CF222E;--shiki-dark:#FF7B72\">type</span><span style=\"color:#1F2328;--shiki-dark:#E6EDF3\">, </span><span style=\"color:#0A3069;--shiki-dark:#A5D6FF\">\"notnull\"</span></span>\n<span class=\"line\"><span style=\"color:#CF222E;--shiki-dark:#FF7B72\">FROM</span><span style=\"color:#1F2328;--shiki-dark:#E6EDF3\"> pragma_table_info(</span><span style=\"color:#0A3069;--shiki-dark:#A5D6FF\">'orders'</span><span style=\"color:#1F2328;--shiki-dark:#E6EDF3\">);</span></span></code></pre><div class=\"run-output\" data-run-output=\"1\" hidden></div></div>\n<p>Here’s how the tables connect. Arrows point from a table to the table it references; the label is the shared key.</p>\n<figure class=\"diagram\"><svg class=\"diagram-svg\" focusable=\"false\" viewBox=\"0 0 720 300\" role=\"img\" aria-labelledby=\"l-sql-1-1-t1\"><defs><marker id=\"arrow-l-sql-1-1-1\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\"><path d=\"M0 0 L10 5 L0 10 z\" class=\"d-arrowhead\"/></marker></defs>\n  <title id=\"l-sql-1-1-t1\">Customers place orders; orders contain order_items; order_items reference products, which belong to categories. Returns reference order_items. Support tickets reference customers, orders and employees. Web sessions reference customers.</title>\n  <rect class=\"d-box\" x=\"20\" y=\"30\" width=\"150\" height=\"50\" rx=\"10\"/>\n  <text class=\"d-label\" x=\"95\" y=\"60\" text-anchor=\"middle\">web_sessions</text>\n  <rect class=\"d-box\" x=\"215\" y=\"30\" width=\"160\" height=\"50\" rx=\"10\"/>\n  <text class=\"d-label\" x=\"295\" y=\"60\" text-anchor=\"middle\">support_tickets</text>\n  <rect class=\"d-box\" x=\"420\" y=\"30\" width=\"140\" height=\"50\" rx=\"10\"/>\n  <text class=\"d-label\" x=\"490\" y=\"60\" text-anchor=\"middle\">employees</text>\n  <rect class=\"d-box-primary\" x=\"20\" y=\"140\" width=\"150\" height=\"50\" rx=\"10\"/>\n  <text class=\"d-label-strong\" x=\"95\" y=\"170\" text-anchor=\"middle\">customers</text>\n  <rect class=\"d-box-primary\" x=\"215\" y=\"140\" width=\"160\" height=\"50\" rx=\"10\"/>\n  <text class=\"d-label-strong\" x=\"295\" y=\"170\" text-anchor=\"middle\">orders</text>\n  <rect class=\"d-box-primary\" x=\"420\" y=\"140\" width=\"140\" height=\"50\" rx=\"10\"/>\n  <text class=\"d-label-strong\" x=\"490\" y=\"170\" text-anchor=\"middle\">order_items</text>\n  <rect class=\"d-box-accent\" x=\"595\" y=\"140\" width=\"110\" height=\"50\" rx=\"10\"/>\n  <text class=\"d-label\" x=\"650\" y=\"170\" text-anchor=\"middle\">products</text>\n  <rect class=\"d-box-accent\" x=\"595\" y=\"235\" width=\"110\" height=\"50\" rx=\"10\"/>\n  <text class=\"d-label\" x=\"650\" y=\"265\" text-anchor=\"middle\">categories</text>\n  <rect class=\"d-box\" x=\"420\" y=\"235\" width=\"140\" height=\"50\" rx=\"10\"/>\n  <text class=\"d-label\" x=\"490\" y=\"265\" text-anchor=\"middle\">returns</text>\n  <path class=\"d-arrow\" d=\"M215 165 L172 165\" marker-end=\"url(#arrow-l-sql-1-1-1)\"/>\n  <path class=\"d-arrow\" d=\"M420 165 L377 165\" marker-end=\"url(#arrow-l-sql-1-1-1)\"/>\n  <path class=\"d-arrow\" d=\"M560 165 L593 165\" marker-end=\"url(#arrow-l-sql-1-1-1)\"/>\n  <path class=\"d-arrow\" d=\"M650 190 L650 233\" marker-end=\"url(#arrow-l-sql-1-1-1)\"/>\n  <path class=\"d-arrow\" d=\"M490 235 L490 192\" marker-end=\"url(#arrow-l-sql-1-1-1)\"/>\n  <path class=\"d-arrow\" d=\"M95 80 L95 138\" marker-end=\"url(#arrow-l-sql-1-1-1)\"/>\n  <path class=\"d-arrow\" d=\"M260 80 L130 138\" marker-end=\"url(#arrow-l-sql-1-1-1)\"/>\n  <path class=\"d-arrow\" d=\"M295 80 L295 138\" marker-end=\"url(#arrow-l-sql-1-1-1)\"/>\n  <path class=\"d-arrow\" d=\"M375 55 L418 55\" marker-end=\"url(#arrow-l-sql-1-1-1)\"/>\n  <text class=\"d-code\" x=\"193\" y=\"210\" text-anchor=\"middle\">customer_id</text>\n  <text class=\"d-code\" x=\"398\" y=\"210\" text-anchor=\"middle\">order_id</text>\n  <text class=\"d-code\" x=\"578\" y=\"128\" text-anchor=\"middle\">product_id</text>\n</svg><figcaption>The Cartwheel schema: orders sit between customers and products</figcaption></figure>\n<p>The three highlighted tables are the spine of most questions: a customer places an order, and an order has one or more order items. Money lives on <code dir=\"ltr\">order_items</code>, not on <code dir=\"ltr\">orders</code>: line revenue is <code dir=\"ltr\">quantity * unit_price * (1 - discount)</code>.</p>\n<h2 id=\"sec-2\" tabindex=\"-1\">From request to query</h2>\n<p>Rania’s request has two fuzzy words. “Expensive” can mean list price. “Barely profitable” needs a number: margin as a percentage of price, <code dir=\"ltr\">(unit_price - unit_cost) / unit_price</code>, is the usual way to compare a $22 dripper with a $449 desk. Write the precise version down before you type: <em>one row per product, showing price and margin percent, thinnest margins first.</em></p>\n<div class=\"code-block\" dir=\"ltr\" data-lang=\"sql\" data-run=\"sql\" data-index=\"2\"><div class=\"code-head\"><span class=\"code-title\">SQL</span><span class=\"code-actions\"><button type=\"button\" class=\"code-btn code-run\" data-action=\"run\" data-lang=\"sql\" data-index=\"2\" aria-label=\"Run this example\"><svg class=\"icon \" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z\"/></svg><span>Run</span></button><button type=\"button\" class=\"code-btn\" data-action=\"copy\" aria-label=\"Copy code\"><svg class=\"icon \" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"/><path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"/></svg><span>Copy</span></button></span></div><pre class=\"shiki\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#CF222E;--shiki-dark:#FF7B72\">SELECT</span></span>\n<span class=\"line\"><span style=\"color:#CF222E;--shiki-dark:#FF7B72\">  name</span><span style=\"color:#1F2328;--shiki-dark:#E6EDF3\">,</span></span>\n<span class=\"line\"><span style=\"color:#1F2328;--shiki-dark:#E6EDF3\">  unit_price,</span></span>\n<span class=\"line\"><span style=\"color:#1F2328;--shiki-dark:#E6EDF3\">  unit_cost,</span></span>\n<span class=\"line\"><span style=\"color:#0550AE;--shiki-dark:#79C0FF\">  ROUND</span><span style=\"color:#1F2328;--shiki-dark:#E6EDF3\">((unit_price </span><span style=\"color:#CF222E;--shiki-dark:#FF7B72\">-</span><span style=\"color:#1F2328;--shiki-dark:#E6EDF3\"> unit_cost) </span><span style=\"color:#CF222E;--shiki-dark:#FF7B72\">/</span><span style=\"color:#1F2328;--shiki-dark:#E6EDF3\"> unit_price </span><span style=\"color:#CF222E;--shiki-dark:#FF7B72\">*</span><span style=\"color:#0550AE;--shiki-dark:#79C0FF\"> 100</span><span style=\"color:#1F2328;--shiki-dark:#E6EDF3\">, </span><span style=\"color:#0550AE;--shiki-dark:#79C0FF\">1</span><span style=\"color:#1F2328;--shiki-dark:#E6EDF3\">) </span><span style=\"color:#CF222E;--shiki-dark:#FF7B72\">AS</span><span style=\"color:#1F2328;--shiki-dark:#E6EDF3\"> margin_pct</span></span>\n<span class=\"line\"><span style=\"color:#CF222E;--shiki-dark:#FF7B72\">FROM</span><span style=\"color:#1F2328;--shiki-dark:#E6EDF3\"> products</span></span>\n<span class=\"line\"><span style=\"color:#CF222E;--shiki-dark:#FF7B72\">ORDER BY</span><span style=\"color:#1F2328;--shiki-dark:#E6EDF3\"> margin_pct</span></span>\n<span class=\"line\"><span style=\"color:#CF222E;--shiki-dark:#FF7B72\">LIMIT</span><span style=\"color:#0550AE;--shiki-dark:#79C0FF\"> 5</span><span style=\"color:#1F2328;--shiki-dark:#E6EDF3\">;</span></span></code></pre><div class=\"run-output\" data-run-output=\"2\" hidden></div></div>\n<p>Three habits are already at work. The computed column gets a readable name with <code dir=\"ltr\">AS</code>. <code dir=\"ltr\">ORDER BY</code> can sort by that alias. And <code dir=\"ltr\">LIMIT 5</code> comes last, cutting the sorted list.</p>\n<aside class=\"callout callout-mistake\" role=\"note\"><p class=\"callout-title\"><svg class=\"icon \" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\"/><path d=\"M12 9v4\"/><path d=\"M12 17h.01\"/></svg><span><span class=\"callout-kind\">Common mistake</span><span class=\"callout-sep\" aria-hidden=\"true\"> · </span>LIMIT is not “top”</span></p>\n<p><code dir=\"ltr\">LIMIT 5</code> without <code dir=\"ltr\">ORDER BY</code> gives you five rows in whatever order SQLite happens to read them. Every time you want “the top N” or “the latest N”, write the <code dir=\"ltr\">ORDER BY</code> that defines top or latest, then the <code dir=\"ltr\">LIMIT</code>.</p>\n</aside>\n<h2 id=\"sec-3\" tabindex=\"-1\">The analyst’s loop</h2>\n<p>Every request in this course goes through the same loop, and it’s worth making it a habit now:</p>\n<ol>\n<li><strong>Restate</strong> the question precisely, including what one row of the answer is.</li>\n<li><strong>Explore</strong> the tables and columns you need.</li>\n<li><strong>Query</strong>, starting small and building up.</li>\n<li><strong>Sanity-check</strong> the result: row count, a total you know, an edge case.</li>\n<li><strong>Answer</strong> in a sentence a non-analyst can act on.</li>\n</ol>\n<p>For Rania, step 5 might read: “Our thinnest margins are around 40%, on the Burr Coffee Grinder and Compact Writing Desk; no product is listed below cost.” Short, specific, and it points to the next question.</p>\n<p>Next you’ll add the most-used clause in analytics, <code dir=\"ltr\">WHERE</code>, and learn where its logic trips people up.</p>\n","toc":[{"id":"sec-1","text":"Meet the database","level":2},{"id":"sec-2","text":"From request to query","level":2},{"id":"sec-3","text":"The analyst’s loop","level":2}],"takeaways":["An analyst’s query starts with a precise question, including what one row of the answer represents.","Explore an unfamiliar database through its tables and columns before writing the real query.","Computed columns with AS names make a result readable without changing the stored data.","ORDER BY decides which rows LIMIT keeps, so a LIMIT without an ORDER BY returns an arbitrary sample."],"further":[{"title":"SQLite SELECT statement","url":"https://www.sqlite.org/lang_select.html"},{"title":"The sqlite_schema table","url":"https://www.sqlite.org/schematab.html"}],"quiz":[{"q":"<p>Rania asks for “our best products”. What should you do before writing any SQL?</p>","options":[{"text":"Pin down what “best” means (revenue, units, margin) and over which period.","why":"Correct. “Best” has at least three defensible meanings, and each one gives a different list. Agreeing on the metric first saves a rewrite."},{"text":"Write <code dir=\"ltr\">SELECT * FROM products</code> and send her the whole table.","why":"Forty-eight rows of raw columns don’t answer a question; they hand the analysis back to the person who asked."},{"text":"Sort products by <code dir=\"ltr\">unit_price</code>, because expensive products are the best ones.","why":"Price isn’t performance. A $449 desk that sells twice a year may matter less than a $24 mug that sells daily."}],"answer":0},{"q":"<p>What does this query return?</p>\n<div class=\"code-block\" dir=\"ltr\" data-lang=\"sql\" data-index=\"0\"><div class=\"code-head\"><span class=\"code-title\">SQL</span><span class=\"code-actions\"><button type=\"button\" class=\"code-btn\" data-action=\"copy\" aria-label=\"Copy code\"><svg class=\"icon \" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" focusable=\"false\"><rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"/><path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"/></svg><span>Copy</span></button></span></div><pre class=\"shiki\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#CF222E;--shiki-dark:#FF7B72\">SELECT</span><span style=\"color:#CF222E;--shiki-dark:#FF7B72\"> name</span><span style=\"color:#1F2328;--shiki-dark:#E6EDF3\">, unit_price</span></span>\n<span class=\"line\"><span style=\"color:#CF222E;--shiki-dark:#FF7B72\">FROM</span><span style=\"color:#1F2328;--shiki-dark:#E6EDF3\"> products</span></span>\n<span class=\"line\"><span style=\"color:#CF222E;--shiki-dark:#FF7B72\">LIMIT</span><span style=\"color:#0550AE;--shiki-dark:#79C0FF\"> 3</span><span style=\"color:#1F2328;--shiki-dark:#E6EDF3\">;</span></span></code></pre></div>\n","options":[{"text":"The three most expensive products.","why":"Nothing in the query sorts by price. LIMIT only cuts the result; it never chooses the “top” rows by itself."},{"text":"The three cheapest products.","why":"There is no ORDER BY, so there’s no notion of cheapest here either."},{"text":"Three rows in whatever order SQLite reads them, which you shouldn’t rely on.","why":"Correct. Without ORDER BY, row order is an implementation detail. Today it’s the insertion order; after an index change it might not be."}],"answer":2},{"q":"<p>You write <code dir=\"ltr\">unit_price - unit_cost AS margin</code> in the SELECT list. What happens to the <code dir=\"ltr\">products</code> table?</p>","options":[{"text":"A new <code dir=\"ltr\">margin</code> column is added to the table permanently.","why":"SELECT never changes stored data. Adding a column would take ALTER TABLE."},{"text":"Nothing; <code dir=\"ltr\">margin</code> exists only in this query’s result.","why":"Correct. A computed column is calculated for each output row and disappears when the query finishes."},{"text":"The query fails because <code dir=\"ltr\">margin</code> isn’t a real column.","why":"Expressions with an alias are exactly how you create columns that don’t exist in the table."}],"answer":1}],"exercise":{"kind":"sql","starter":"-- Highest-margin products, by margin percent\nSELECT\n  name,\n  unit_price,\n  ROUND(unit_price - unit_cost, 2) AS margin\nFROM products\nORDER BY margin DESC\nLIMIT 5;","solution":"SELECT\n  name,\n  unit_price,\n  ROUND(unit_price - unit_cost, 2) AS margin,\n  ROUND((unit_price - unit_cost) / unit_price * 100, 1) AS margin_pct\nFROM products\nORDER BY margin_pct DESC\nLIMIT 5;","orderMatters":true,"title":"Find the fattest margins","prompt":"<p>Rania liked the thin-margin list and now wants the opposite: the <strong>5 products with the highest margin percent</strong>, so marketing can feature them.</p>\n<p>Return four columns in this order: <code dir=\"ltr\">name</code>, <code dir=\"ltr\">unit_price</code>, <code dir=\"ltr\">margin</code> (<code dir=\"ltr\">unit_price - unit_cost</code>, rounded to 2 decimals) and <code dir=\"ltr\">margin_pct</code> (margin as a percentage of <code dir=\"ltr\">unit_price</code>, rounded to 1 decimal). Sort by <code dir=\"ltr\">margin_pct</code>, highest first. Order matters.</p>\n<p>The starter sorts by margin in dollars, which favours expensive products. Fix it.</p>\n","hints":["Add a fourth column that divides the margin by <code dir=\"ltr\">unit_price</code> and multiplies by 100.","Wrap it in <code dir=\"ltr\">ROUND(..., 1)</code> and give it the alias <code dir=\"ltr\">margin_pct</code>.","Change the <code dir=\"ltr\">ORDER BY</code> to <code dir=\"ltr\">margin_pct DESC</code>; LIMIT stays last."],"explanation":"<p>Sorting by dollar margin puts the Standing Desk first, because a big price leaves a big gap even at an ordinary percentage. Margin percent compares products of any price on the same scale: the $19 Cable Management Kit keeps 61.5% of its price, the best in the catalogue. <code dir=\"ltr\">ORDER BY</code> can use the alias defined in the SELECT list, and <code dir=\"ltr\">LIMIT 5</code> then keeps the first five rows of that sorted result.</p>\n","checkLabels":{}},"words":490,"readMinutes":3}