{"id":28240,"date":"2017-11-23T10:55:36","date_gmt":"2017-11-23T08:55:36","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=28240"},"modified":"2017-11-23T10:55:36","modified_gmt":"2017-11-23T08:55:36","slug":"querying-csv-with-sql","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/23\/querying-csv-with-sql\/","title":{"rendered":"Querying CSV with SQL"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p>Excel is not the only tool available when it comes working with CSV files.\u00a0 I have previously mentioned <a href=\"https:\/\/github.com\/dinedal\/textql\">TextQL<\/a> (<a href=\"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/05\/textql-execute-sql-against-structured-text-like-csv-or-tsv\/\">here<\/a>).\u00a0 Yesterday, I tried another tool, called &#8220;q&#8221;.\u00a0 But since searching for &#8220;q&#8221; is not very effective, it&#8217;s also known &#8220;<a href=\"http:\/\/harelba.github.io\/q\/\">q text as data<\/a>&#8220;.<\/p>\n<p>For those using Fedora, you can install it by simply running &#8220;<em>dnf install q-text-as-data<\/em>&#8220;.\u00a0\u00a0 Here&#8217;s an example of how it works:<\/p>\n<pre class=\"brush: plain; light: true; title: ; notranslate\" title=\"\">\r\n$ q-text-as-data -H -d ',' &quot;SELECT COUNT(DISTINCT(Project)) FROM deploy.csv&quot;\r\n95\r\n<\/pre>\n<p>In the above example, I&#8217;m querying the <em>deploy.csv<\/em> file, which is in the current folder. q supports both command and tab separated values, so I&#8217;m helping it out with the &#8220;<em>-d &#8216;,&#8217;<\/em>&#8221; parameter, saying that this particular one is a CSV. &#8220;<em>-H<\/em>&#8221; tells q that the first row in this file is used for headers. CSV files with headers are more convenient, as you can use headers as column names, instead of numerical indexes.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>Excel is not the only tool available when it comes working with CSV files.\u00a0 I have previously mentioned TextQL (here).\u00a0 Yesterday, I tried another tool, called &#8220;q&#8221;.\u00a0 But since searching for &#8220;q&#8221; is not very effective, it&#8217;s also known &#8220;q text as data&#8220;. For those using Fedora, you can install it by simply running &#8220;dnf &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/23\/querying-csv-with-sql\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Querying CSV with SQL<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Querying CSV with SQL #SQL #CSV #WebDev #stats #databases #CLI","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false,"_links_to":"","_links_to_target":""},"categories":[1,6,18,62,1334],"tags":[1960,3510,1559,2351,773,1330],"keyring_services":[],"class_list":["post-28240","post","type-post","status-publish","format-standard","hentry","category-general","category-linux","category-programming","category-technology","category-web-work","tag-command-line","tag-csv","tag-databases","tag-fedora-linux","tag-sql","tag-web-development"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.9 - aioseo.com -->\n\t<meta name=\"description\" content=\"Excel is not the only tool available when it comes working with CSV files. I have previously mentioned TextQL (here). Yesterday, I tried another tool, called &quot;q&quot;. But since searching for &quot;q&quot; is not very effective, it&#039;s also known &quot;q text as data&quot;. For those using Fedora, you can install it by simply running &quot;dnf\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Leonid Mamchenkov\"\/>\n\t<meta name=\"google-site-verification\" content=\"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/23\/querying-csv-with-sql\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.9\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Leonid Mamchenkov - Life, universe, and everything else\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Querying CSV with SQL - Leonid Mamchenkov\" \/>\n\t\t<meta property=\"og:description\" content=\"Excel is not the only tool available when it comes working with CSV files. I have previously mentioned TextQL (here). Yesterday, I tried another tool, called &quot;q&quot;. But since searching for &quot;q&quot; is not very effective, it&#039;s also known &quot;q text as data&quot;. For those using Fedora, you can install it by simply running &quot;dnf\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/23\/querying-csv-with-sql\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2017-11-23T08:55:36+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2017-11-23T08:55:36+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/MamchenkovBlog\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Querying CSV with SQL - Leonid Mamchenkov\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Excel is not the only tool available when it comes working with CSV files. I have previously mentioned TextQL (here). Yesterday, I tried another tool, called &quot;q&quot;. But since searching for &quot;q&quot; is not very effective, it&#039;s also known &quot;q text as data&quot;. For those using Fedora, you can install it by simply running &quot;dnf\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/11\\\/23\\\/querying-csv-with-sql\\\/#blogposting\",\"name\":\"Querying CSV with SQL - Leonid Mamchenkov\",\"headline\":\"Querying CSV with SQL\",\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/11\\\/23\\\/querying-csv-with-sql\\\/#articleImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"},\"datePublished\":\"2017-11-23T10:55:36+02:00\",\"dateModified\":\"2017-11-23T10:55:36+02:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/11\\\/23\\\/querying-csv-with-sql\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/11\\\/23\\\/querying-csv-with-sql\\\/#webpage\"},\"articleSection\":\"All, Linux, Programming, Technology, Web work, command line, CSV, databases, Fedora Linux, sql, web development\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/11\\\/23\\\/querying-csv-with-sql\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"position\":2,\"name\":\"Technology\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/linux\\\/#listItem\",\"name\":\"Linux\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/linux\\\/#listItem\",\"position\":3,\"name\":\"Linux\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/linux\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/11\\\/23\\\/querying-csv-with-sql\\\/#listItem\",\"name\":\"Querying CSV with SQL\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/11\\\/23\\\/querying-csv-with-sql\\\/#listItem\",\"position\":4,\"name\":\"Querying CSV with SQL\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/linux\\\/#listItem\",\"name\":\"Linux\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/11\\\/23\\\/querying-csv-with-sql\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/11\\\/23\\\/querying-csv-with-sql\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/11\\\/23\\\/querying-csv-with-sql\\\/#webpage\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/11\\\/23\\\/querying-csv-with-sql\\\/\",\"name\":\"Querying CSV with SQL - Leonid Mamchenkov\",\"description\":\"Excel is not the only tool available when it comes working with CSV files. I have previously mentioned TextQL (here). Yesterday, I tried another tool, called \\\"q\\\". But since searching for \\\"q\\\" is not very effective, it's also known \\\"q text as data\\\". For those using Fedora, you can install it by simply running \\\"dnf\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2017\\\/11\\\/23\\\/querying-csv-with-sql\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"datePublished\":\"2017-11-23T10:55:36+02:00\",\"dateModified\":\"2017-11-23T10:55:36+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/\",\"name\":\"Blog of Leonid Mamchenkov\",\"description\":\"Life, universe, and everything else\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Querying CSV with SQL - Leonid Mamchenkov","description":"Excel is not the only tool available when it comes working with CSV files. I have previously mentioned TextQL (here). Yesterday, I tried another tool, called \"q\". But since searching for \"q\" is not very effective, it's also known \"q text as data\". For those using Fedora, you can install it by simply running \"dnf","canonical_url":"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/23\/querying-csv-with-sql\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/23\/querying-csv-with-sql\/#blogposting","name":"Querying CSV with SQL - Leonid Mamchenkov","headline":"Querying CSV with SQL","author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"},"image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/23\/querying-csv-with-sql\/#articleImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"},"datePublished":"2017-11-23T10:55:36+02:00","dateModified":"2017-11-23T10:55:36+02:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/23\/querying-csv-with-sql\/#webpage"},"isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/23\/querying-csv-with-sql\/#webpage"},"articleSection":"All, Linux, Programming, Technology, Web work, command line, CSV, databases, Fedora Linux, sql, web development"},{"@type":"BreadcrumbList","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/23\/querying-csv-with-sql\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","position":1,"name":"Home","item":"https:\/\/mamchenkov.net\/wordpress","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","position":2,"name":"Technology","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/linux\/#listItem","name":"Linux"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/linux\/#listItem","position":3,"name":"Linux","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/linux\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/23\/querying-csv-with-sql\/#listItem","name":"Querying CSV with SQL"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/23\/querying-csv-with-sql\/#listItem","position":4,"name":"Querying CSV with SQL","previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/linux\/#listItem","name":"Linux"}}]},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/#person","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/23\/querying-csv-with-sql\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author","url":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/23\/querying-csv-with-sql\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"WebPage","@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/23\/querying-csv-with-sql\/#webpage","url":"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/23\/querying-csv-with-sql\/","name":"Querying CSV with SQL - Leonid Mamchenkov","description":"Excel is not the only tool available when it comes working with CSV files. I have previously mentioned TextQL (here). Yesterday, I tried another tool, called \"q\". But since searching for \"q\" is not very effective, it's also known \"q text as data\". For those using Fedora, you can install it by simply running \"dnf","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#website"},"breadcrumb":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/23\/querying-csv-with-sql\/#breadcrumblist"},"author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"creator":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"datePublished":"2017-11-23T10:55:36+02:00","dateModified":"2017-11-23T10:55:36+02:00"},{"@type":"WebSite","@id":"https:\/\/mamchenkov.net\/wordpress\/#website","url":"https:\/\/mamchenkov.net\/wordpress\/","name":"Blog of Leonid Mamchenkov","description":"Life, universe, and everything else","inLanguage":"en-US","publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"}}]},"og:locale":"en_US","og:site_name":"Leonid Mamchenkov - Life, universe, and everything else","og:type":"article","og:title":"Querying CSV with SQL - Leonid Mamchenkov","og:description":"Excel is not the only tool available when it comes working with CSV files. I have previously mentioned TextQL (here). Yesterday, I tried another tool, called &quot;q&quot;. But since searching for &quot;q&quot; is not very effective, it's also known &quot;q text as data&quot;. For those using Fedora, you can install it by simply running &quot;dnf","og:url":"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/23\/querying-csv-with-sql\/","og:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:secure_url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:width":1024,"og:image:height":1024,"article:published_time":"2017-11-23T08:55:36+00:00","article:modified_time":"2017-11-23T08:55:36+00:00","article:publisher":"https:\/\/www.facebook.com\/MamchenkovBlog","twitter:card":"summary_large_image","twitter:site":"@mamchenkov","twitter:title":"Querying CSV with SQL - Leonid Mamchenkov","twitter:description":"Excel is not the only tool available when it comes working with CSV files. I have previously mentioned TextQL (here). Yesterday, I tried another tool, called &quot;q&quot;. But since searching for &quot;q&quot; is not very effective, it's also known &quot;q text as data&quot;. For those using Fedora, you can install it by simply running &quot;dnf","twitter:creator":"@mamchenkov","twitter:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg"},"aioseo_meta_data":{"post_id":"28240","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"BlogPosting","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2023-07-19 12:13:27","updated":"2026-01-15 13:21:45","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/\" title=\"Technology\">Technology<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/linux\/\" title=\"Linux\">Linux<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tQuerying CSV with SQL\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/mamchenkov.net\/wordpress"},{"label":"Technology","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/"},{"label":"Linux","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/linux\/"},{"label":"Querying CSV with SQL","link":"https:\/\/mamchenkov.net\/wordpress\/2017\/11\/23\/querying-csv-with-sql\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":20288,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/05\/textql-execute-sql-against-structured-text-like-csv-or-tsv\/","url_meta":{"origin":28240,"position":0},"title":"TextQL &#8211; execute SQL against structured text like CSV or TSV","author":"Leonid Mamchenkov","date":"February 5, 2014","format":"link","excerpt":"TextQL - execute SQL against structured text like CSV or TSV","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"textql usage","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/02\/textql_usage-500x375.gif?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":27517,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/04\/10\/validating-csv-schema\/","url_meta":{"origin":28240,"position":1},"title":"Validating CSV schema","author":"Leonid Mamchenkov","date":"April 10, 2017","format":false,"excerpt":"CSV, or comma-separated values, is a very common format for managing all kinds of configurations, as well data manipulation. \u00a0As the linked Wikipedia page mentions, there are a few RFCs that try to standardize the format. \u00a0However, I thought, there is still a lack of schema-type standard that would allow\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27601,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/05\/22\/linux-utils-that-you-might-not-know\/","url_meta":{"origin":28240,"position":2},"title":"Linux utils that you might not know","author":"Leonid Mamchenkov","date":"May 22, 2017","format":false,"excerpt":"Linux utils that you might not know covers a few Linux command line utilities that aren't very famous: column, for \"columnating\" lists, which is very useful for display of table-like data (think CSV, for example); cal, for displaying calendars; factor, for calculating factors; numfmt, for formatting numbers and converting them\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":9629,"url":"https:\/\/mamchenkov.net\/wordpress\/2005\/10\/31\/two-interviews-with-google\/","url_meta":{"origin":28240,"position":3},"title":"Two interviews with Google","author":"Leonid Mamchenkov","date":"October 31, 2005","format":false,"excerpt":"As I have already said, I had two interviews with Google. Both of the interviews were conducted over the phone (they called me both times). The first interview was with the recruiter and was mostly about my resume and possibilities of me moving to Dublin, Ireland. There was a small\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":24803,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/10\/03\/sql-vs-nosql-how-to-choose\/","url_meta":{"origin":28240,"position":4},"title":"SQL vs NoSQL: How to Choose","author":"Leonid Mamchenkov","date":"October 3, 2015","format":false,"excerpt":"\"SQL vs NoSQL: How to Choose\" article continues the discussion of SQL vs. NoSQL from the \"SQL vs NoSQL: The Differences\" article. \u00a0Both should be read in full. \u00a0But I'll keep the summary here for future use. SQL databases: store related data in tables require a schema which defines tables\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":14795,"url":"https:\/\/mamchenkov.net\/wordpress\/2011\/04\/27\/mysql-export-csv-into-outfile-triggers-access-denied-error\/","url_meta":{"origin":28240,"position":5},"title":"MySQL export CSV into OUTFILE triggers &#8220;access denied&#8221; error","author":"Leonid Mamchenkov","date":"April 27, 2011","format":false,"excerpt":"I came across a weird problem today. \u00a0Gladly, the web is full of solutions, but I'm going to post this anyway, just to have it nearby for the next time. \u00a0I needed to export the results of some query into a CSV file directly from MySQL. \u00a0I prepared my query,\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/28240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=28240"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/28240\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=28240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=28240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=28240"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=28240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}