[{"data":1,"prerenderedAt":797},["ShallowReactive",2],{"project-33833836":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":52,"post_text":53,"what":54,"said":102,"maker_in_thread":238,"shape":248,"grid":252,"attempts":759,"same_week":760,"maker_shows":42,"maker_hidden":789,"reader_version":790,"card":791},"33833836","SQL for Devs","A free eBook about many lesser-known\u002Fsecret database tricks","title","Show HN: I wrote a free eBook about many lesser-known\u002Fsecret database tricks","https:\u002F\u002Fsqlfordevs.com\u002Febook","sqlfordevs.com","tpetry",1670002990,2022,865,174,13,2570,1,"legend","learning_science","sql tutorial ebook","other",[24,25,26,27,28],"sql","database tips","postgresql","mysql","query optimization","debated",0.128,{"positive":32,"neutral":33,"mixed":34,"critical":35},39,22,5,27,93,{"privacy":38,"docs":40,"execution":43,"idea":46,"design":48,"pricing":50,"performance":51},{"positive":18,"critical":39},6,{"positive":41,"critical":42},2,3,{"positive":44,"critical":45},4,10,{"positive":47,"critical":44},15,{"positive":49,"critical":41},0,{"positive":34,"critical":41},{"positive":49,"critical":49},[42,34,34,34,42,42,49,49,18,34,42,49,49,42,42,44,42,42,49,18,18,34,34,34,34,42,18,18,41,18,42,41,49,18,18,34,34,44,34,42],null,{"problem":55,"audience":66,"pricing":72,"motivation":79,"time_to_build":53,"stack":83,"openness":99,"stage":100,"team_size":101},{"value":56,"source":57,"evidence":58},"Many developers don't know advanced database features and do work the DBMS could handle","maker",[59,62],{"id":60,"by":11,"text":61},"33833847","In isolation because of Corona last year, I started to share many lesser-known database tricks I know on Twitter (@tobias_petry). Although I thought that only a few people would…",{"id":63,"by":64,"text":65},"33841911","hgrth6644fd23","The overall mantra of this book is: Don't reimplement database features in your application that the dbms can do for you. I really strongly agree with this, and even if you don't…",{"value":67,"source":57,"evidence":68},"Developers who work with databases",[69],{"id":70,"by":11,"text":71},"33833948","You are not alone. Databases are so easy to use, and that is very good! But due to that simplicity most devs never learn more than the basic statements, but there is so much more…",{"value":73,"source":57,"evidence":74},"Free, in exchange for an email address",[75,76],{"id":60,"by":11,"text":61},{"id":77,"by":11,"text":78},"33834898","Thank you both. But correctly filling taxes for those donations would be more effort than it is worth. So i‘ll just keep it free :)",{"value":80,"source":57,"evidence":81},"Preserve knowledge shared on Twitter that would otherwise vanish",[82],{"id":60,"by":11,"text":61},[84,92],{"value":85,"source":86,"evidence":87},"MySQL","commenter",[88],{"id":89,"by":90,"text":91},"33843218","px1999","It might be worthwhile mentioning somewhere that this is for mysql and postgres. While it does look really handy and well put together, unfortunately none of the tips in the book…",{"value":93,"source":86,"evidence":94},"PostgreSQL",[95],{"id":96,"by":97,"text":98},"33838860","quickthrower2","Nice. I presume this is for a flavour e.g. Postgres?","free","launched","solo",{"praise":103,"objections":124,"requests":172,"questions":198,"alternatives":218},[104,113],{"value":105,"source":86,"evidence":106},"Useful tricks, well put together",[107,108,109],{"id":96,"by":97,"text":98},{"id":89,"by":90,"text":91},{"id":110,"by":111,"text":112},"33840323","WesleyJohnson","I'm fairly adept at writing queries and have been using MySQL for what seems like an eternity. The multiple aggregates per query thing kinda blew my mind. I've certainly done…",{"value":114,"source":86,"evidence":115},"Thanks for making it free",[116,120],{"id":117,"by":118,"text":119},"33835290","jmhnsn","Thank you for making this available, and for free. Nice work.",{"id":121,"by":122,"text":123},"33834504","danenania","This looks great! Awesome that you made it free, but fyi I would have paid you $5-10 for this in a heartbeat.",[125,140,148,163],{"value":126,"source":86,"evidence":127},"Email wall is off-putting",[128,132,136],{"id":129,"by":130,"text":131},"33834745","adamc","I have a very negative reaction to sites that require an email to get something of unknown value. Automatic no.",{"id":133,"by":134,"text":135},"33839426","throwaway81523","Book looks good, shovelling the subscription at me was annoying and of course I used a throwaway address and unsubscribed immediately. It's actually probably a newsletter I…",{"id":137,"by":138,"text":139},"33844073","fefe23","Maybe it's me but I wasn't shown a free ebook. I was shown a \"give me you PII so I can spam you\" trap website. If you ask me to give you my PII then it's not free, is it? Are you…",{"value":141,"source":86,"evidence":142},"Examples are MySQL\u002FPostgreSQL only, not MSSQL",[143,144],{"id":89,"by":90,"text":91},{"id":145,"by":146,"text":147},"33846398","AdrianB1","The tricks for MySQL and Postgres are very different than MS SQL; some exist in a different form, some have no equivalent. It would be useful to have a side by side for all major…",{"value":149,"source":86,"evidence":150},"Technical errors in some examples",[151,155,159],{"id":152,"by":153,"text":154},"33841010","timemachine","Nice effort on an interesting topic. However, the book could use a better technical review. For example the first recipe will not work as expected with out a multi-column unique…",{"id":156,"by":157,"text":158},"33838643","remram","``` -- MySQL SELECT * FROM example WHERE NOT(column \u003C> 'value'); -- PostgreSQL SELECT * FROM example WHERE column IS DISTINCT FROM 'value'; ``` That doesn't seem equivalent?",{"id":160,"by":161,"text":162},"33878041","benjy77","Might there be an error in \"Simplified Inequality Checks With Nullable Columns\" for mysql? NOT(column \u003C> 'value') seems to be wrong Did you mean NOT(column \u003C=> 'value') ?",{"value":164,"source":57,"evidence":165},"Email delivery failing or landing in spam",[166,169],{"id":167,"by":11,"text":168},"33835954","Gmail started to mark the email with the PDF as spam. It worked perfectly before this trended on hn. I guess I triggered some rate-limiting rule. If you activate the subscription…",{"id":170,"by":11,"text":171},"33835669","Gmail now started to classify the email with the ebook attachment as spam. After having worked without any problems before. I am now changing my code, give me a few minutes. Fixed",[173,180,184,191],{"value":174,"source":86,"evidence":175},"Window functions coverage",[176],{"id":177,"by":178,"text":179},"33845743","Ozzie_osman","This was a great read, but I was surprised not to see window functions in here. They are so powerful and I'd estimate that less than 10% of developers I've worked with even know…",{"value":181,"source":86,"evidence":182},"Side-by-side SQL flavor comparison",[183],{"id":145,"by":146,"text":147},{"value":185,"source":86,"evidence":186},"Example query results",[187],{"id":188,"by":189,"text":190},"33836113","nop_slide","This is great! Really appreciate you giving this out for free. Only critique is that it would be super useful to include some example query results for each section so show the…",{"value":192,"source":86,"evidence":193},"Publish source on GitHub",[194],{"id":195,"by":196,"text":197},"33836930","revskill","Thanks. One suggestion: Could you put all materials in github for contribution ?",[199,210],{"value":200,"source":86,"evidence":201},"Why require email instead of ads or open access",[202,206],{"id":203,"by":204,"text":205},"33836738","kevstev","Honest question- why does one choose to harvest emails for something like this vs just putting ads on the page? I have seen this model used for several ebooks, but it seems like…",{"id":207,"by":208,"text":209},"33836867","cdrini","I get the frustration about the email, but that aside, I do wonder whether requiring the email before getting the book is the most effective mechanism for your end goal. What do…",{"value":211,"source":86,"evidence":212},"Which SQL flavor the book targets",[213,217],{"id":214,"by":215,"text":216},"33839013","qiller","Well, for example, intro doesn’t say which SQL flavor the author is targeting. As a MSSQL user I wouldn’t want to share my email in exchange for MySQL tricks",{"id":96,"by":97,"text":98},[219,227,231],{"value":220,"source":86,"evidence":221},"SQL Performance Explained by Markus Winand",[222,223],{"id":133,"by":134,"text":135},{"id":224,"by":225,"text":226},"33843219","overtomanu","some more tips and tricks https:\u002F\u002Fblog.jooq.org\u002Fsql\u002F https:\u002F\u002Fwinand.at\u002Fsql-slides-for-developers",{"value":228,"source":86,"evidence":229},"jOOQ SQL blog",[230],{"id":224,"by":225,"text":226},{"value":232,"source":86,"evidence":233},"Brent Ozar sp_blitz",[234],{"id":235,"by":236,"text":237},"33835393","sandreas","Awesome, thank you. If you are on Microsoft SQL Server I additionally recommend to take a look at Brent Ozars sp_blitz[1] script collection and the according youtube series. Many…",{"comments":239,"answered":34,"key":240},12,[241,242,245],{"id":60,"text":61},{"id":243,"text":244},"33837009","I‘ll send you an email when I have written more full-length articles like the ones under „Tips“ in the navigation.",{"id":246,"text":247},"33834882","I‘ve used ibis https:\u002F\u002Fgithub.com\u002Fthemsaid\u002Fibis",{"commenters":249,"max_depth":250,"maker_replies":239,"first_comment_mins":49,"lifespan_hours":251},126,7,206,[253,255,259,263,266,269,273,276,277,279,282,286,287,289,293,297,301,304,308,311,313,316,319,322,325,329,332,335,338,341,343,346,349,352,355,358,361,364,367,370,372,374,377,380,383,386,388,391,394,397,400,403,406,410,413,416,419,421,424,427,431,435,438,440,444,448,452,455,457,461,462,464,468,471,474,477,479,481,484,487,489,492,494,496,498,500,501,505,508,510,512,514,516,519,522,524,527,530,533,537,540,544,547,550,552,554,557,560,562,565,568,569,570,573,576,579,581,584,587,589,592,594,596,599,602,605,609,611,614,616,618,620,623,626,627,629,633,636,640,643,646,649,651,654,656,658,660,662,664,667,669,671,676,678,682,684,686,690,694,698,701,705,707,711,715,719,721,724,728,732,736,740,743,746,748,751,755,757],[60,49,49,254,11,18],"maker\u002Fneutral\u002Fnone",[256,49,42,257,258,49],"33834391","project\u002Fneutral\u002Fprivacy","tuukkah",[260,49,49,261,262,49],"33834939","commenter\u002Fneutral\u002Fprivacy","copperx",[264,49,49,261,265,49],"33838988","pmontra",[267,49,49,261,268,49],"33842058","skwashd",[270,49,34,271,272,49],"33834971","project\u002Fpositive\u002Fdocs","qup",[274,49,49,261,275,49],"33835455","courgette",[243,49,49,254,11,18],[278,49,49,261,272,49],"33837809",[280,49,49,261,281,49],"33838847","Terretta",[283,49,34,284,285,49],"33834394","project\u002Fpositive\u002Fnone","sakopov",[246,49,49,254,11,18],[170,49,49,288,11,18],"maker\u002Fneutral\u002Fexecution",[290,49,34,291,292,49],"33836997","maker\u002Fpositive\u002Fnone","hrgiger",[294,49,34,295,296,49],"33837915","project\u002Fpositive\u002Fexecution","tomrod",[298,49,34,299,300,49],"33841870","maker\u002Fpositive\u002Fexecution","muhehe",[302,49,34,291,303,49],"33836477","mooreds",[305,49,18,306,307,49],"33838498","project\u002Fcritical\u002Fdocs","sneak",[309,49,49,261,310,49],"33839717","javajosh",[312,49,49,261,64,49],"33841816",[314,49,49,261,315,49],"33839790","AspenSix",[317,49,34,271,318,49],"33846663","dev_dude",[320,49,34,284,321,49],"33941254","elric",[323,18,49,261,324,49],"33835164","pashabitz",[326,18,18,327,328,49],"33835282","project\u002Fcritical\u002Fprivacy","pubby",[330,18,49,261,331,49],"33835478","selykg",[333,18,49,334,328,49],"33835759","commenter\u002Fneutral\u002Fnone",[336,18,49,334,337,49],"33836021","nabakin",[339,18,49,334,340,49],"33836072","varispeed",[342,18,49,334,337,49],"33836139",[344,18,49,334,345,49],"33836165","giraffe_lady",[347,18,49,334,348,49],"33839574","llanowarelves",[350,18,49,351,340,49],"33842700","other\u002Fneutral\u002Fnone",[353,18,49,334,354,49],"33840245","victor106",[356,18,49,351,357,49],"33846070","rvba",[359,18,49,334,360,49],"33842764","RavingGoat",[362,18,18,327,363,49],"33837051","evilduck",[365,18,49,261,366,49],"33837282","FooBarWidget",[368,18,49,261,369,49],"33837589","marktangotango",[371,18,49,261,281,49],"33838854",[373,18,49,261,366,49],"33854312",[375,18,49,261,376,49],"33837819","christophilus",[378,18,34,284,379,49],"33837338","scrubs",[381,18,49,334,382,49],"33840658","lojban42",[384,18,34,284,385,49],"33841693","kretaceous",[387,18,18,327,64,49],"33841832",[389,18,49,334,390,49],"33842330","enraged_camel",[392,18,49,261,393,49],"33842964","yakshaving_jgt",[395,18,49,261,396,49],"33843994","gbear605",[398,18,49,261,399,49],"33847821","ranger_danger",[401,41,49,351,402,49],"33835544","mdip",[404,41,49,351,405,49],"33836215","rudasn",[407,41,49,408,409,49],"33837974","other\u002Fneutral\u002Fdocs","proto-n",[411,41,49,408,412,49],"33838347","wswope",[414,41,49,408,415,49],"33840931","Pamar",[417,41,49,408,418,49],"33841297","RheingoldRiver",[420,41,49,408,415,49],"33844544",[422,41,49,408,423,49],"33841136","gen220",[425,41,49,408,426,49],"33843482","zasdffaa",[428,42,34,429,430,49],"33838272","project\u002Fpositive\u002Fprivacy","freebookthanks",[432,42,18,433,434,49],"33839265","project\u002Fcritical\u002Fexecution","cfeduke",[436,42,42,257,437,49],"33839271","bachmeier",[207,44,42,439,208,49],"maker\u002Fneutral\u002Fidea",[441,44,18,442,443,49],"33838175","project\u002Fcritical\u002Fidea","randStr_",[445,44,34,446,447,49],"33846309","maker\u002Fpositive\u002Fidea","edmundsauto",[449,34,42,450,451,49],"33834780","project\u002Fmixed\u002Fprivacy","btown",[453,34,42,450,454,49],"33835159","andrewl",[63,39,34,456,64,49],"project\u002Fpositive\u002Fidea",[458,39,49,459,460,49],"33842381","commenter\u002Fneutral\u002Fidea","tgv",[129,250,18,442,130,49],[463,250,34,456,272,49],"33834904",[465,250,42,466,467,49],"33835146","project\u002Fneutral\u002Fidea","joe_guy",[469,250,42,466,470,49],"33835200","googlryas",[472,250,49,459,473,49],"33835300","_jal",[475,250,49,351,476,49],"33835906","peruvian",[478,250,49,439,11,18],"33835919",[480,250,34,446,272,49],"33837698",[482,250,49,334,483,49],"33838130","rendall",[485,250,18,442,486,49],"33835227","411111111111111",[488,250,49,459,272,49],"33837728",[490,250,49,459,491,49],"33835503","uoaei",[493,250,49,459,272,49],"33837756",[495,250,49,261,491,49],"33837926",[497,250,49,261,272,49],"33839660",[499,250,49,459,491,49],"33849397",[214,250,18,306,215,49],[502,250,42,503,504,49],"33835081","project\u002Fneutral\u002Fnone","tr33house",[506,250,49,334,507,49],"33835169","NikolaNovak",[509,250,49,334,504,49],"33835226",[511,250,49,351,157,49],"33837600",[513,250,49,351,443,49],"33838328",[515,250,49,439,11,18],"33835498",[517,250,18,327,518,49],"33837432","ylg",[520,250,49,261,521,49],"33838024","ibdf",[523,250,49,261,518,49],"33840126",[525,250,34,456,526,49],"33835132","jrvarela56",[528,250,42,257,529,49],"33835250","quijoteuniv",[531,250,34,456,532,49],"33835295","icedchai",[534,250,18,535,536,49],"33835843","project\u002Fcritical\u002Fdesign","layer8",[538,250,49,334,539,49],"33865708","kwhitefoot",[541,542,34,456,543,49],"33836395",8,"handzhiev",[121,545,34,546,122,49],9,"project\u002Fpositive\u002Fpricing",[548,545,34,546,549,49],"33834623","llaolleh",[77,545,49,551,11,18],"maker\u002Fneutral\u002Fpricing",[553,545,34,546,122,49],"33835915",[555,545,34,556,518,49],"33840219","maker\u002Fpositive\u002Fpricing",[558,45,34,456,559,49],"33835241","midnightmonster",[110,561,34,456,111,49],11,[563,561,34,456,564,49],"33840875","RustLove",[566,239,34,456,567,49],"33833914","f0e4c2f7",[70,239,49,351,11,18],[203,16,42,257,204,49],[571,16,42,466,572,49],"33836795","martin-adams",[574,16,49,575,11,18],"33837043","maker\u002Fneutral\u002Fprivacy",[577,16,42,466,578,49],"33836976","ren_engineer",[580,16,18,327,518,49],"33840404",[582,583,18,442,426,49],"33843460",14,[585,47,34,546,586,49],"33837789","FredPret",[137,588,18,327,138,49],16,[590,588,49,261,591,49],"33844278","ThisIsTheWay",[593,588,49,334,138,49],"33844959",[595,588,49,334,591,49],"33846408",[133,597,42,598,134,49],17,"project\u002Fmixed\u002Fexecution",[600,597,18,433,601,49],"33839962","a2800276",[603,597,18,604,134,49],"33840064","project\u002Fcritical\u002Fpricing",[606,607,42,466,608,49],"33834908",18,"auct",[610,607,49,456,11,18],"33835560",[145,612,42,613,146,49],19,"project\u002Fneutral\u002Fdocs",[235,615,49,351,236,49],20,[617,615,49,351,146,49],"33846315",[152,619,18,433,153,49],21,[621,33,18,433,622,49],"33835745","leke",[624,33,18,433,625,49],"33835785","zellyn",[167,33,49,288,11,18],[628,33,34,295,622,49],"33836070",[630,631,18,433,632,49],"33843949",23,"benji-york",[188,634,42,635,189,49],24,"project\u002Fmixed\u002Fdocs",[637,638,34,456,639,49],"33835452",25,"rrgok",[641,642,18,433,526,49],"33835313",26,[644,642,42,645,118,49],"33835387","project\u002Fneutral\u002Fexecution",[647,642,42,645,648,49],"33835604","dandruff",[650,35,18,535,491,49],"33835612",[652,653,49,334,483,49],"33835427",28,[655,653,49,334,275,49],"33835518",[657,653,49,334,532,49],"33838527",[224,659,49,351,225,49],29,[89,661,18,306,90,49],30,[156,663,18,433,157,49],31,[177,665,42,666,178,49],32,"project\u002Fmixed\u002Fidea",[195,668,42,613,196,49],33,[160,670,18,433,161,49],34,[672,673,42,674,675,49],"33847752",35,"project\u002Fneutral\u002Fpricing","gofreddygo",[677,673,18,604,608,49],"33876477",[679,680,18,433,681,49],"33835496",36,"mariusmg",[683,680,49,288,11,18],"33835958",[685,680,34,295,681,49],"33836296",[687,688,49,351,689,49],"33847594",37,"uwwuuwhshshhdh",[691,692,34,446,693,49],"33836548",38,"aloukissas",[695,692,42,696,697,49],"33836765","project\u002Fneutral\u002Fperformance","chasil",[699,32,34,456,700,49],"33841535","Simon_O_Rourke",[702,703,34,291,704,49],"33842313",40,"djmips",[117,706,34,291,118,49],41,[708,709,34,291,710,49],"33836758",42,"nezaj",[712,713,34,291,714,49],"33834596",43,"bastardoperator",[716,717,34,291,718,49],"33836982",44,"pachico",[96,720,42,613,97,49],45,[722,720,42,613,723,49],"33839745","thangngoc89",[725,726,42,613,727,49],"33841582",46,"tobyhinloopen",[729,730,34,291,731,49],"33836532",47,"comradesmith",[733,734,34,456,735,49],"33841987",48,"vincnetas",[737,738,42,645,739,49],"33836069",49,"mgkimsal",[741,742,49,334,483,49],"33838092",50,[744,742,49,334,745,49],"33838457","matthewwolfe",[747,742,49,334,483,49],"33838517",[749,742,49,334,750,49],"33839792","danparsonson",[752,753,42,257,754,49],"33839931",51,"gaws",[756,753,49,351,399,49],"33847863",[758,753,49,351,754,49],"33848407",[],[761,766,771,775,779,784],{"id":762,"name":763,"points":764,"category":765},"33853773","chat-gpt-google-extension",431,"dev_tools",{"id":767,"name":768,"points":769,"category":770},"33877893","Whisper",399,"ai",{"id":772,"name":773,"points":774,"category":770},"33882497","SmartyNames",313,{"id":776,"name":777,"points":778,"category":20},"33815146","NLP Demystified",286,{"id":780,"name":781,"points":782,"category":783},"33842406","Wikiwho",261,"data",{"id":785,"name":786,"points":787,"category":788},"33845946","This Hacker News Does Not Exist",252,"creative",false,"v2",{"id":792,"name":5,"line":6,"ai":789,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":793,"top":18,"kw":794,"maker":11,"domain":10,"tier":19,"attempts":49,"strip":795,"url":9,"mix":796,"praise":105,"objection":126,"sub":21},33833836,0.13,[24,25,26,27,28],"3555330015300334330115555311213201155453",[32,33,34,35],1794036628032]