Mitä uutta
SQL Arenan päivityshistoria. Uusimmat julkaisut ylimpänä.
Every task is now solved by writing SQL — new task formats and catalog filters, plus new task packs.
- New task types: debugging, data-quality checks, index design, query rewriting, schema design with constraints, transactions & locking, and access permissions (GRANT/REVOKE).
- New catalog filters: by task format, difficulty, solved status, dialect (PostgreSQL/MySQL) and favorites.
- Permissions tasks are graded by the resulting privilege set (least privilege enforced).
- Transaction tasks are graded under real concurrency: safe debits, atomic transfers, idempotency, isolation levels and row locks.
- New task packs: ride-hailing analytics, data modification, schema design, recursive hierarchies and product events.
- Your chosen SQL dialect (PostgreSQL/MySQL) now persists across tasks.
- Most tasks now show a preview of the expected output.
- Hundreds of new step-by-step hints, plus an AI mentor that explains the errors in your query.
- Every format is now code-writing: you write real SQL instead of picking an answer.
- Task descriptions are living business scenarios in Russian and English; difficulty levels recalibrated.
- AI task generation: descriptions now read as a real business scenario and no longer give away the solution — formulas, SQL function names and dry table listings are kept out of the text.
- Company examples on the home page and in Premium are now locale-aware: the Russian site shows Russian employers, every other locale shows international ones (Tesla, Uber, Microsoft, Spotify, Meta) whose tasks we carry.
- Removed a stray privacy notice banner on the user profile page.
Käyttöliittymä puhuu nyt kaikkia EU-kieliä — 21 uutta kieltä.
- Lisätty 21 EU-kieltä: saksa, ranska, italia, hollanti, puola, romania, kreikka, tšekki, unkari, ruotsi, tanska, suomi, slovakki, bulgaria, kroaatti, liettua, sloveeni, latvia, viro, iiri ja malta. Valitse kieli kielivalitsimesta tai se tunnistetaan automaattisesti maasi ja selaimesi kielen perusteella.
- Sivu ”Ilmoita virheestä” on nyt ”Palaute” (osoitteessa /feedback), ja siinä on kaksi välilehteä: ”Ilmoita virheestä” ja ”Ehdota parannusta”. Parannusehdotukset tavoittavat tiimin samalla tavalla kuin virheilmoitukset.
- Profiiliasetuksissa näkyy nyt tilauksen päättymispäivä, ja maininta ”kertamaksu” on poistettu.
- Kielivalitsimen pudotusvalikko on nyt tiiviimpi.
- Profiilit avautuvat taas tulostaulukosta kirjautuneille käyttäjille — yksityisyys piilottaa profiilin vain anonyymeiltä kävijöiltä. Profiilin URL-tunnusta ei voi enää poistaa, joten jokainen profiili pysyy saavutettavissa linkin kautta.
- Ulkomaisella kortilla maksaminen (Visa/MC-välilehti) venäläisellä sivustolla hinnoitellaan nyt oikein dollareissa (USD) ja käsitellään Paddlen kautta sen sijaan, että avattaisiin YooKassa ruplasummalla.
Sertifiointi: suorita aikarajoitettu koe ja ansaitse todennettava tasosertifikaatti.
- Sertifiointikokeet: kolme tasoa (Foundations / Practitioner / Expert), 8 tehtävää kullakin, tehtäväkohtainen ajastin, läpäisyraja 7/8. Jokaiselle yritykselle annetaan oma datajoukko, joten vastauksia ei voi opetella ulkoa etukäteen.
- Todennettava sertifikaatti QR-koodilla, joka johtaa julkiseen profiiliisi; profiiliin ilmestyy nyt sertifikaattiosio.
- Poista tilisi suoraan profiilin asetuksista.
- Profiilin asetukset on suunniteltu uudelleen siistiksi osioiduksi listaksi; Premium-käyttäjät saavat animoidun renkaan avatarinsa ympärille.
- Arvostelua kovennettu 324 tehtävässä: se ajetaan nyt piilotetulla datajoukolla, joten et voi enää läpäistä sovittamalla näkyvään esimerkkiin.
- Editorin automaattitäydennys ehdottaa nyt WITH-lauseella määriteltyjä CTE-nimiä, kun kirjoitat FROM/JOIN.
- AI Mentor näkee nyt virheesi ja nykyisen kyselysi myös Run-painalluksen jälkeen — uusi "Explain my error" -painike antaa käsitellä minkä tahansa virheen, syntaksivirheet mukaan lukien.
- Tehtävä #91: arvostelu ajetaan nyt piilotetulla datajoukolla — et voi enää läpäistä sovittamalla näkyvään esimerkkiin (esim. LIMITillä tai kovakoodatulla pituudella).
- Tehtävä #13: tehtävänannosta poistettiin valmis suodatusvihje — johdat ratkaisun nyt itse.
- Taitokartta kattaa nyt kaikki tehtäväkategoriat (lisätty CTE, DDL, transaktiot, optimointi) ja on isompi ja helppolukuisempi.
- Taitokartan "mitä parantaa" -vihje osoittaa nyt aiheeseen, jossa on eniten ratkaisemattomia tehtäviä, satunnaisen sijaan.
- Vuosittaisessa aktiivisuuskaaviossa näkyvät taas kuukausien koko nimet sen sijaan, että ne katkaistaisiin yhteen kirjaimeen.
- Aikaväliä (esim. kahden ajan erotuksen) palauttavat ratkaisut eivät enää aiheuta virhettä lähetettäessä.
- Tehtävä #88: data korjattu — Pariisin lähdöillä on nyt eri kestot kolmen identtisen rivin sijaan.
- Kumoa (Ctrl+Z) editorissa pitää nyt erillistä historiaa kullekin kyselyvälilehdelle.
- Tehtävä #624: tehtävänanto kertoo nyt, että keskihinta on pyöristettävä 2 desimaaliin.
- SQL-editorin ehdotukset eivät enää toistu tehtävien välillä siirtymisen jälkeen.
- Tehtävä #621: kerhot, joilla ei ole jäseniä, näkyvät nyt tuloksessa nollatulolla.
- Tehtävän #831 vaikeustaso muutettu EXPERTistä tasolle MEDIUM.
SQL Arena on nyt monikielinen: englanti, espanja ja portugali, kullakin omat sivu-URL:nsa ja automaattinen alueen tunnistus.
- Kielivalitsin: venäjä, englanti, espanja (Espanja ja Latinalainen Amerikka) ja portugali.
- Ensimmäisellä käynnillä sivusto avautuu alueesi kielellä, ja valintasi muistetaan.
- Jokaisella kielellä on omat sivu-URL:nsa (/en, /es, /es-419, /pt-br), joita voi turvallisesti jakaa.
- Premiumin maksu paikallisessa valuutassasi: RUB, USD, EUR tai BRL alueen mukaan.
- Englanninkielinen sivusto on täysin tuettu; espanjan- ja portugalinkieliset käännökset julkaistaan vähitellen.
Taulun luontitehtävät hyväksyvät minkä tahansa kelvollisen muodon, virhevihjeet ovat nyt osuvia, ja yksi monitulkintaisen vastauksen tehtävä korjattiin.
- "Suosituin kurssipari" -tehtävä: esimerkkidata salli useita yhtä päteviä vastauksia, mutta arvostelija hyväksyi vain yhden. Tehtävällä on nyt yksi oikea vastaus.
- CREATE TABLE -tehtävät hylkäsivät oikean ratkaisun, kun oppija nimesi rajoitteen (esim.
CONSTRAINT ... PRIMARY KEY). Arvostelu vertaa nyt taulun rakennetta — rajoitteiden nimet jätetään huomiotta. - Epäonnistunut taulun luontitehtävä näytti epäolennaisen "add ORDER BY" -vihjeen. Vihje on nyt osuva — sarakkeista, tyypeistä, NOT NULLista ja avaimista.
Dataa muuttavat tehtävät ratkaistaan täsmälleen niin kuin tehtävänannossa lukee — ilman dokumentoimatonta varmistavaa SELECTiä.
- INSERT/UPDATE/DELETE- ja transaktiotehtävät (mukaan lukien UPSERT, MERGE, SKIP LOCKED) eivät enää vaatineet dokumentoimatonta varmistavaa SELECTiä. Ne arvostellaan nyt taulun lopputilan perusteella, ja tehtäväsivulla näkyy "no trailing SELECT needed" -huomautus.
- Parhaat ratkaisut: palvelutilit eivät enää näy listalla — vastaten julkista tulostaulua.
Taulun ja indeksin luontitehtävät ratkaistaan nyt täsmälleen niin kuin tehtävänannossa lukee — ilman dokumentoimatonta SELECTiä; tulostaulun reaaliaikainen päivitys toimii taas.
- DDL-tehtävät (CREATE TABLE, ALTER, CREATE INDEX, vierasavaimet) eivät enää vaatineet dokumentoimatonta varmistavaa SELECTiä. Ne arvostellaan nyt tietokannan lopputuloskaavion perusteella, ja tehtäväsivulla näkyy "no trailing SELECT needed" -huomautus.
- Tulostaulusivu: reaaliaikainen päivitys palautettu — tulostaulun WebSocket-yhteys ei enää katkea.
- Kaaviokuva: joillakin tehtävillä ei näkynyt yhteyksiä taulujen välillä — vierasavainten nuolet näkyvät nyt kaaviossa.
- "Correct!"-valintaikkuna ei enää näytä sijoituksen pudotusta nousuna — sijoitusmerkki ilmestyy vain aidossa ylennyksessä.
CREATE / ALTER TABLE -tehtävät ja muut monivaiheiset ratkaisut voi taas lähettää — lähetyskohtainen lauserajoitus oli liian tiukka.
- Lähetyskohtainen lauserajoitus nostettiin 3:sta 20:een: DDL-tehtäviä (CREATE TABLE, ALTER, indeksit, liipaisimet) ja monivaiheisia DML-lauseita ei enää hylätä "too many statements" -virheellä.
Luettelotehtävien MySQL-variantti on taas synkronissa PostgreSQL:n kanssa — osa MySQL-tehtävistä arvosteltiin vanhentuneella datalla.
- Satojen tehtävien MySQL-variantti ajettiin vanhentuneella datajoukolla — siemenet synkronoitu uudelleen, MySQL-vastaus vastaa taas PostgreSQL:ää.
- Kuusi tehtävää, jotka toimivat vain PostgreSQL:ssä, sai nyt toimivan MySQL-variantin.
- CREATE TABLE / CREATE INDEX / ALTER -tehtävät arvostellaan taulun lopputuloskaavion perusteella — virheellistä rakennetta ei enää hyväksytä oikeaksi.
- CURRENT_TIMESTAMP / NOW() -funktioita käyttävät INSERT-tehtävät eivät enää hylkää oikeaa vastausta ajonaikaisen eron vuoksi.
- Esimerkkitulosteet, jotka vahingossa paljastivat tarkan vastauksen, korvattiin spoilereilta välttävillä näytteillä; rivijärjestys vahvistetaan siellä, missä tehtävä sitä vaatii.
- Koko luettelon kattava auditointi yhdenmukaisti tehtävänannon, arvosteludatan ja viiteratkaisun useissa kymmenissä tehtävissä, joissa ne olivat ajautuneet erilleen.
Korjattu monilauseisten ratkaisujen arvostelu — lopullisella SELECTillä varustettu DELETE/UPDATE arvostellaan nyt oikein.
- Päivämäärät ja ajat kyselyn tuloksissa näkyvät nyt siististi muodossa
2024-01-15 08:00:00teknisen ISO-muodon sijaan.
- Varmistavalla SELECTillä varustetut DML-tehtävät (DELETE, UPDATE, INSERT) eivät enää hylkää oikeaa vastausta "liiat sarakkeet" -syyllä.
- Tehtävä #768: tehtävänanto vastaa nyt arvosteltua vastausta.
- Väärän vastauksen vihje ei enää ehdota vertaamista esimerkkilohkoon, joka on tarkoituksella epätarkka.
- Pelkät UPDATE / DELETE / INSERT -tehtävät arvostellaan nyt taulun lopputilan perusteella — virheellistä muutosta ei enää hyväksytä oikeaksi.
Korjattu viisi tehtävää, joissa tehtävänannon teksti ei vastannut kaaviota ja vastausta.
- Tehtävät #762, #763, #764, #765, #809: tehtävänanto kirjoitettu uudelleen vastaamaan todellista kaaviota ja odotettua vastausta.
- AI-tehtävägenerointi, AI Mentor ja vikailmoituslomake: nopeusrajan ylittyessä ne näyttävät nyt "retry in N seconds" sen sijaan, että näytettäisiin "ThrottlerException".
Korjattu tehtävä #17 — arvostelija palautti NULL-arvon kaaviovirheen vuoksi.
- Tehtävä #17 (
average-post-hiatus): kaavio yhdenmukaistettu siemenen kanssa, arvostelija toimii taas.
"Move old rows to archive in one go — race-free" -tehtävässä (#789) tehtävänanto pyysi customer_id-saraketta, jota kaaviossa ei ole. Sanamuoto on nyt yhdenmukaistettu todellisen kaavion ja arvostelijan kanssa: id, status, amount.
- Tehtävä #789 (
hard-cte-atomic-archive): kuvaus mainitsi olemattomancustomer_id-sarakkeen. Sanamuoto vastaa nytorders/orders_archive-kaaviota ja odotettuja sarakkeitaid, status, amount.
"Too many requests" -viesti näyttää nyt tarkan rajan ja sekunnit nollautumiseen sen sijaan, että näytettäisiin epäselvä "ThrottlerException". Palvelinpuolen nopeusrajaa nostettu, joten nopea trackin navigointi ei enää törmää kattoon.
- Palvelinpuolen nopeusraja tavallisille API-pyynnöille nostettu 5-kertaiseksi. Nopea edestakaisin liikkuminen trackin tehtävien välillä (10+ rinnakkaista mount-hakua) ei enää törmää kattoon ja palauta 429:ää.
- Kun nopeusraja ylittyy Submit- tai Run-painalluksessa, viesti näyttää nyt todellisen rajan ja tarkat sekunnit uudelleenyritykseen. Aiemmin näkyi vain epäselvä "ThrottlerException: Too Many Requests" ilman odotusvihjettä.
Trackin kortin "Start" käynnistää taas trackin — näkymätön korttilinkin peittokerros söi klikkauksen ja ohjasi sen trackin tietosivulle.
- Sivulla
/trainer/trackstrackin kortin "Start"-painike ei enää navigoi trackin tietosivulle trackin käynnistämisen sijaan. Klikkaa-mistä-tahansa-kortilla → tiedot säilyy.
SQL-hiekkalaatikko: tuo omat taulusi ja kyselysi — ei tehtävää, ei arvostelua. Lisäksi yhtenäinen leveä bento-asettelu tulostaululla, edistymisessä, trackeissa, tehtävissä ja sessioissa.
- Uusi
/sandbox-sivu — Monaco-editori, kaaviopaneeli, tulospaneeli, taulukohtaiset datavälilehdet, lämmittelypätkät. Anonyymit sessiot vanhenevat 30 minuutin jouten olon jälkeen, kirjautuneet käyttäjät saavat 7 päivää. - Tallennetut fiddlet: enintään 5 ilmaisversiossa, rajaton Premiumissa. Kirjasto haulla, linkin kopioinnilla, poistolla ja yksityisyyskytkimellä.
- Yhtenäinen leveä asettelu henkilökohtaisen tilan sivuilla — My Fiddles, Progress, Leaderboard, Sessions, Tasks, Tracks ja trackin tietosivu jakavat nyt yhden kuoren liukuväriherootsikolla ja yhtenäisellä korttiruudukolla.
Tulostaulun sijoitusmuutosnuolet ovat takaisin — aiemmin sarake oli tyhjä, koska ei ollut vertailupohjaa.
- "nousi / putosi / ei muutosta" -ilmaisin on takaisin kunkin rivin vieressä tulostaulussa. Edellisen viikon perustilannekuva siemennettiin; säännöllinen viikoittainen cron pitää sen päivitettynä.
Korjattu vika, jossa jo ratkaistun tehtävän uudelleenlähetys poisti hiljaisesti Poweria — "ensimmäisellä yrityksellä" -bonus pyyhkiytyi. Kaikkien asianosaisten käyttäjien Power on laskettu uudelleen.
- Jo ratkaistun tehtävän ratkaisun uudelleenlähetys ei enää pyyhi "ensimmäisellä yrityksellä" -bonusta — tehtävän Power pysyy samana kuin heti ensimmäisen onnistuneen lähetyksen jälkeen.
- Tehtävä #107 (kirjagenrekohtainen kulutuserittely vuodelle 2005) ei enää vaadi tiettyä rivijärjestystä — mikä tahansa järjestys hyväksytään nyt, vastaten tehtävänannon sanamuotoa.
Korjattu tietokantakaaviopaneeli useissa tehtävissä — oransseja yhteysviivoja linkitettyjen taulujen välille ei piirretty.
- Joissakin tehtävissä "Schema"-paneeli ei näyttänyt taulujen välisiä yhteyksiä (oransseja 1:N-nuolia) — puuttuvat yhteydet lisättiin datajoukkoihin.
Korjattu "Split customers into low / mid / high spenders" -tehtävä: esimerkkivastaus ja viiteratkaisu olivat ajautuneet erilleen tehtävänannosta — nyt kaikkialla käytetään asiakastunnusta ja low / mid / high -segmenttejä.
- Tehtävä "Split customers into low / mid / high spenders" (#757): esimerkkivastaus ja viiteratkaisu vastaavat nyt tehtävänantoa — sarakkeet
customer_id,segment, segmentitlow/mid/high, järjestys sarakkeencustomer_idmukaan.
Iso "Arena"-uudelleenbrändäys: uusi etusivu, alusta rakennettu tulostaulu palkintokorokkeella ja reaaliaikaisilla päivityksillä, pisteet nimetty uudelleen "Poweriksi" sotakirves-tunnuksella, oppimispolut rakennettu uudelleen ja mukautuva AI-tehtävägenerointi, joka todella lukee viimeaikaiset lähetyksesi.
- Uusi "League"-välilehti — 30 sinua Powerilta lähinnä olevaa käyttäjää. Vaikeussuodattimet globaalilla välilehdellä (Power lasketaan uudelleen kullekin tikkaalle). Nousu- / laskunuolet kunkin sijoituksen vieressä — viikkotason liike.
- Saavutukset: emojit korvattu vektori-ikoneilla, jotka on sävytetty kategorian mukaan, selaimen työkaluvihjeet näyttävät lokalisoidut nimet; sivulla
/statsse on ruudukko, jossa mobiilissa napautus-popoverit. Uusi "10 Expert" -saavutus. - Vie hiiri nimen päälle tulostaulussa saadaksesi mini-käyttäjäkortin. "Share rank" -painike — linkki johtaa julkiseen profiiliisi OG-esikatselulla.
- Etusivu kirjoitettu uudelleen "Arena"-brändin alle: napakka "Sharpen SQL. Take the offer." -otsikko, reaaliaikainen pistetaulu herossa, sijoitustikkaat "You"-merkillä, osiot harjoittelijasta / trackeista / AI:sta / haastattelutilasta / edistymisestä ja päättävä "The axe is in your hand. Swing." -palkki. Mobiilivalmis.
- Pisteet nimetty uudelleen "Poweriksi". Salama on korvattu sotakirveellä — nyt logossa, faviconissa ja linkin jakoesikatselussa.
- Tulostaulusivu kirjoitettiin uudelleen alusta: top-3-palkintokoroke (kulta / hopea / pronssi), henkilökohtainen edistymiskortti palkilla seuraavaan sijoitukseen, yksi kiinnittyvä suodatinpalkki, sijoitustikkaat heti otsikon alla, kiinnitetty "you"-rivi kun olet top 50:n ulkopuolella, ja reaaliaikaiset päivitykset — taulu reagoi sujuvasti muiden ratkaisuihin ilman uudelleenlatausta.
- Oppimispolut rakennettu uudelleen. Analyst / Backend / QA / Data Engineering — kullakin ~50 kuratoitua tehtävää: muutama edustaja per aihe×vaikeus-solu, lämmittelystä tasolle EXPERT, painottuen oikeisiin haastattelutehtäviin. Lisätty Data Engineering -polku sekä erillinen haastatteluvalmistautumispolku.
- "Generate for me" -painike on nyt aidosti mukautuva: se lukee 40 viimeisintä lähetystäsi, valitsee aiheen, jossa viimeaikainen osumatarkkuus on heikoin, ja kalibroi vaikeuden tasollesi — junnaus pudottaa seuraavaa pykälän, putki nostaa sitä.
- Uudet vierailijat päätyvät oletuksena "Night"-teemaan (aiemmin "Evening"). Jos olet jo valinnut teeman, valintasi säilyy.
- Tehtävä "Say in one number: how many active customers" — kanoninen ratkaisu vaati asiakkaita, joilla on ≥2 maksettua tilausta, vaikka kuvauksessa lukee "vähintään kerran". Korjattu vastaamaan kuvausta.
EXPERT-tehtävät antavat nyt aidot 75 poweria per ratkaisu (bonuksilla jopa 281) EASY-tason 10:n sijaan. Käyttäjien, jotka jo läpäisivät EXPERTin, elinikäinen power on laskettu takautuvasti uudelleen.
- Palkkiotaulukossa ei ollut riviä EXPERTille, joten arvostelija palasi oletusarvoon 10 ja jokainen EXPERT-tehtävä maksoi saman kuin EASY. EXPERTin perus on nyt 75 poweria, samat kertoimet pinottuna päälle (ensimmäinen yritys ×2, Mock-Interviewin läpäisy ×1.25, premium-ratkaisu ×1.5) — jopa 281 poweria per EXPERT-tehtävä. Migraatio laski
xp_total-arvon jokaiselle profiilille korjattujen sääntöjen mukaan, joten kuka tahansa, joka oli jo ratkaissut EXPERTin, saa puuttuvan powerin automaattisesti.
Suljettiin aukko, jossa tehtävän saattoi "ratkaista" kovakoodaamalla esimerkkitulosteen: 25 datajoukossa arvostelija tarkistaa nyt kyselysi piilotetuilla riveillä, jotka eroavat tehtävänkuvauksessa näytetyistä.
- Ratkaisut ajetaan edelleen samoja tauluja ja sarakkeita vasten kuin ennenkin, mutta arvostelusiemenen rivit eroavat näkyvästä näytteestä. Mikä tahansa aito kyselyyn perustuva vastaus läpäisee edelleen, kun taas kovakoodattu
SELECT … UNION ALL …, joka kopioi näytteen literaalit, arvostellaan nyt "vääräksi". Katettu 25 datajoukkoa uusimmasta luetteloerästä (listat, CTE, ikkuna, pivot, DML, expert).
Paikattiin kaksi oppijoiden raportoimaa tehtäväongelmaa: "Students by region" -tehtävän väärinjärjestetty näyte ja kaaviosta ajautunut kuvaus nettotulotehtävässä.
- Tehtävä "Students by region" (#357): näyte nousee nyt
rn-sarakkeen mukaan (Jack / Kim / Lars ensimmäisellä rivillä), ja viiteratkaisussa on eksplisiittinenORDER BY rn, joten se tuottaa saman järjestyksen. - Tehtävä "Users with net revenue of at least 100" (#783): otsikko ja kuvaus vastaavat nyt todellista dataa — käyttäjät ja
purchase/refund-tapahtumat, ei tuotteet jasale/refund, kynnyksellä 100, ei 1000.
Kuusi edistynyttä tehtävää toimitetaan nyt esisiemennetyllä taululla — ratkaisut eivät enää ala CREATE TABLE -alkuosalla.
- Kuusi Hard / Expert -tehtävää (yksi- ja monisarakkeinen UPSERT, CTE
RETURNING-lauseella, massa-INSERT … RETURNING,SKIP LOCKED-jono, taulukon purkuUNNEST-funktiolla) liittyi muun edistyneen luettelon joukkoon: taulu luodaan ja siemennetään datajoukossa, ja ratkaisu sisältää vain testattavan operaation sekä lopullisenSELECTin arvostelua varten.
- "View counter" -tehtävän kuvaus ei enää ajaudu erilleen odotetusta tulosteesta: molemmat kuvaavat nyt saman
counters(id, count)-taulun ja saman rivin viisi ajoa.
DDL-tehtävät eivät enää näytä epäolennaisia tauluja sivun kaaviopaneelissa.
- 10
CREATE TABLE-tehtävässä (helposta expertiin) sivun kaaviopaneeli renderöi tauluja epäolennaisesta datajoukosta — esim. artikkelitehtävä näyttiorders-taulun. Paneeli on nyt tyhjä, kuten sen kuuluukin olla, kun tehtävä pyytää rakentamaan taulun alusta.
115 uutta tehtävää, kolmitilainen Day / Evening / Night -teemavalitsin ja pehmeämpi tumma paletti.
- Luettelo kasvoi 115 tehtävällä: 20 helppoa, 35 keskitasoista, 45 vaikeaa ja 15 expert-tason — alikyselyt, CTE:t, ikkunafunktiot, DML/DDL, MERGE, kyselyn optimointi, transaktiot, JSONB, rekursio ja
LATERAL. - Uusi «Expert»-vaikeustaso violetilla merkillä ja omalla suodattimellaan luettelossa.
- Kolmitilainen teemavalitsin: Day (vaalea), Evening (pehmeä tumma) ja Night (syvä) — valitse ympäristön valon mukaan vähentääksesi silmien rasitusta.
- Tummaa teemaa pehmennetty: tausta siirtyi Linear-tyyliseen harmaansiniseen (
#1B1B1F) aiemman lähes mustan sijaan, leipäteksti laskettiin tasolle zinc-300 — vähemmän haloilmiötä pitkissä sessioissa. - «Night»-tilassa SQL-editorin ruutu on kolme askelta taustaa syvempi pienellä siirtymällä kohti puhdasta mustaa — lukeutuu upotettuna paneelina samassa perheessä.
- Tehtävänsisäinen aihelunttilappu huomioi nyt vaikeustason: Hard / Expert -tasoilla se piilottaa peruskomennot
SELECT/WHERE/ORDER BY/LIMITja nostaa esiin edistyneitä kaavoja —STRING_AGG,ARRAY_AGG,GROUPING SETS,LATERAL, JSONB, osittaiset indeksit ja niin edelleen. - Aktiiviset vaikeussuodatinpilllerit vaihtuivat brändikorostuksen pehmeätäyttöön kiinteän mustan sijaan — ne eivät enää riko vaalean teeman ilmettä.
- Venäjänkieliset vaikeusmerkinnät: «Лёгкое» → «Лёгкий», «Среднее» → «Средний», «Сложное» → «Сложный».
24 uutta aloittelijoiden blogiartikkelia.
- Aihekattavuus laajeni: DML (
INSERT/UPDATE/DELETE), DDL (CREATE TABLE/ALTER TABLE), aggregaatit,DISTINCT, NULL-käsittely (CASE WHEN/COALESCE/NULLIF), CTE:t ja alikyselyt, ikkunafunktiot, merkkijono ja päivämäärä.
- Harjoittelijan lunttilappu: jokainen kohta osoittaa nyt omaan artikkeliinsa. Aiemmin neljä ikkunafunktiokohtaa linkitti yhteen yleiskatsaukseen —
ROW_NUMBER,RANK/DENSE_RANK,PARTITION BYjaLAG/LEADsaavat nyt kukin omansa.
- Tehtävä #114 "How many cardiology wards" — odotettu tulostesarake nimettiin uudelleen
count-nimestäwards_count-nimeksi, jotta se ei enää törmää visuaalisesti varattuun avainsanaan.
Suljettiin vastausten täyttämisaukko: tehtävät arvostellaan nyt piilotettua datajoukkoa vasten.
- Arvostelija voi nyt ajaa tehtävän piilotettua datajoukkoa vasten. Kanoninen viite lasketaan uudelleen samalla datalla, joten oikeat ratkaisut läpäisevät edelleen, kun taas näkyvästä näytteestä lainatut vakiot putoavat läpi.
- "Oldest club member" -tehtävä ei enää hyväksy näkyvään näytteeseen sovitettua kovakoodattua
LIMITiä — vain kysely, joka ilmaisee "kaikki rivit pienimmällä syntymäpäivällä", läpäisee.
Hinnoittelukorttien hiomista ja "Sign in & subscribe" -painikkeen korjauksia heti v2.2.0:n jälkeen.
- Hinta ja CTA-painike Free- ja Premium-korteissa asettuvat nyt samalle Y-tasolle.
- Lyhennettiin Crypton ja Visa/MC:n hinta-alaviitteitä — vain maksukanavan nimi jää jäljelle.
- "Sign in & subscribe" -painike on taas klikattavissa uloskirjautuneille käyttäjille.
Lisättiin krypto- ja kansainväliset Visa/Mastercard-maksut sekä kiristettiin botinestoa kirjautumisvirrassa.
- Kryptomaksut NowPaymentsin kautta — BTC, ETH, USDT ja muut. $21 neljännesvuosittain / $28 puolivuosittain.
- Kansainvälinen Visa/Mastercard Paddlen kautta automaattisella ALV:lla/myyntiverolla. $21 / $28.
- Maksutavan valitsin Premium-kortilla: RU-kortti, Crypto, Visa/MC. Valuutta vaihtuu tavan mukaan.
- Cloudflare Turnstile kirjautumisessa ja rekisteröinnissä — näkymätön ihmisille, estää botit.
- Tili lukkiutuu 15 minuutiksi 5 väärän salasanan jälkeen (eksponentiaalisesti jopa 24 tuntiin) eksplisiittisellä ajastimella.
- Kirjautumis- ja rekisteröintivirheet on inhimillistetty — ei enää raakaa "Forbidden" tai "Invalid credentials".
- Lähetysten nopeusraja: 5/min, 30/15min per käyttäjä. Ei vaikuta todellisiin ratkaisusessioihin.
- Kirjautumisen jälkeen palaamme sivulle, jolta tulit — myös OAuth (Google, GitHub, Yandex).
- Uloskirjautuminen julkiselta sivulta ei enää heitä sinua etusivulle.
Saatiin valmiiksi Telegramin, GitHubin ja LinkedInin tallennuskorjaus profiilisivulla. Edellinen julkaisu korjasi käyttäjänimen normalisoijan taustapuolella, mutta etupään komponentti oikosulki onBlur-tapahtuman — PATCH ei koskaan oikeasti lähtenyt. Kenttä hyväksyi syötteen visuaalisesti, palvelin pysyi tyhjänä, ja uudelleenlatauksen jälkeen kenttä oli tyhjä. Nyt blur-vertailu käyttää fokushetkellä tallennettua arvoa, ei meneillään olevaa syötettä.
- Telegram-, GitHub- ja LinkedIn-kentät profiilisivulla tallentavat taas. useEffect ylikirjoitti "viimeksi tallennetun" -viitteen jokaisella näppäinpainalluksella, joten onBlur-tarkistus vertasi nykyistä arvoa itseensä ja ohitti PATCHin. Blur-tarkistus vertaa nyt fokushetkellä otettuun tilannekuvaan.
Korjattiin Telegram-, GitHub- ja LinkedIn-tunnusten tallennus profiilisivulla: paikkamerkkimuodon kuten t.me/username kirjoittaminen leikkautui roskaksi kuten t.me. Nyt mikä tahansa syöte — pelkkä tunnus, @handle, t.me/handle tai https://t.me/handle — normalisoituu siistiksi käyttäjänimeksi.
- Telegram-, GitHub- ja LinkedIn-kentät profiilisivulla tallentuvat nyt oikein, kun osoite kirjoitetaan ilman
https://. Aiemmint.me/durovtallennettiin muodossat.me,github.com/octocatmuodossagithub.com, koska normalisoija vaatihttp(s)://-skeeman ja muuten katkaisi arvon ensimmäisestä kauttaviivasta.
Poistettiin väärä premium-lisämyyntibanneri ratkaisutulospaneelista: se laukesi ilmaistehtävillä ja jopa premium-käyttäjillä. Se oli kuollut käyttöliittymä jo lähtökohtaisesti — premium-tehtävät estetään tehtävän avauksessa, joten editori ei koskaan näe niitä.
- "Correct!"-juhlamodaalissa "+50% Power per solve — go Premium" -pillerillä on nyt asianmukainen vaakatäyttö — kruunu ja nuoli eivät enää kosketa pillerin reunoja.
- AI Mentor saa nyt tiiviin tehtäväkontekstin: aktiivisen SQL-murteen, taulut, yhteydet, odotetut sarakkeet, esimerkkitulosteen ja viimeisimmän arvostelun diffin. Viite-SQL:ää käytetään vain yksityisenä kontekstina virheselityksissä ja myöhemmissä vihjetasoissa.
- "Interview tasks — Premium" -lisämyyntibanneri on poissa palautepaneelista. Aiemmin mikä tahansa palvelinpuolen virhe, jonka pinojäljessä oli sana
premium(esim. puuttuvasolved_as_premium-sarake heti migraation jälkeen), laukaisi osajono-osuman ja renderöi lisämyynnin — jopa ilmaistehtävillä ja jopa premium-käyttäjille.
Premium antaa nyt +50% Poweria jokaisesta ratkaistusta tehtävästä — tehoste pysyy tehtävässä ikuisesti, myös tilauksen päätyttyä. AI Mentor ei enää tyrkytä ratkaisua ensimmäisellä vihjeellä ja eskaloi apua nyt tehtäväkohtaisesti. Lisäksi poistettiin aloituskommentti -- Click ▶ Run ensimmäisen tehtävän editorista.
- Premium-tilaus antaa ×1.5 Power-kertoimen jokaisesta ratkaistusta tehtävästä. Tehoste lukittuu ratkaisuhetkellä, joten se pysyy kokonaissummassasi vaikka tilaus myöhemmin päättyisikin.
- "Correct!"-juhlamodaali näyttää nyt päivityskehotuksen ilmaiskäyttäjille suoraan +Power-merkin alla: "Get +50% Power per solve — go Premium", linkittäen sivulle /pricing.
- AI Mentor eskaloi nyt vihjeitä tehtäväkohtaisesti. Ensimmäinen pyyntö saa vain suuntaa antavan tönäisyn ilman operaattorien nimiä; pyynnöt 2–4 lisäävät käsitteen ja kategorian; pyynnöstä 5 alkaen mentori voi nimetä
LIKE/WHERE/GROUP BYsuoraan. Laskuri nollautuu 24 tunnin välein. - Väärän vastauksen selitykset noudattavat nyt samoja vihjetasoja kuin tavalliset vihjeet — ne eivät enää paljasta tiettyjä operaattoreita aivan ensimmäisellä epäonnistuneella lähetyksellä.
- Suljettiin jäljellä olevat SQL-tehtävien auditointilöydökset: korjattiin Tournament Winners -viite, yhdenmukaistettiin TIMESTAMP-esikatselut useissa tehtävissä ja palautettiin PostgreSQL-variantti yhdelle AI-tehtävälle.
- Poistettiin aloituskommentti
-- Click ▶ Run — see what's in this tableensimmäisen tehtävän editorista. Avatut tehtävät alkavat nyt tyhjästä editorista.
Tehtäväluettelon suodattimet uudistettiin: tilasta tuli 3-tilainen segmentoitu kontrolli (All / Unsolved / Solved) oletuksena Unsolved, lisättiin murresuodatin, aihe- ja yrityschipit näyttävät nyt nykyisen tehtävämääränsä, aktiiviset suodattimet nousevat poistettavina pillereinä "Reset all" -toiminnolla.
- Murresuodatin luettelossa: All / PG / MySQL — oma segmenttinsä tilakontrollin vieressä.
- Aihe- ja yrityschipit näyttävät nyt kuinka monta tehtävää täsmää: "Windows (43)", "Tinkoff (5)". Chipit, joilla on nolla tehtävää, haalistuvat.
- Aktiivisten suodattimien pilleririvi: jokainen sovellettu suodatin (haku, vaikeus, tila, murre, suosikit, aihe, tagi, yritys, alue) renderöityy poistettavana pillerinä; "Reset all" palauttaa kaiken oletuksiin.
- Tehtävän tilan suodatin on nyt 3-tilainen segmentoitu kontrolli (All / Unsolved / Solved), oletuksena Unsolved. Korvaa yksittäisen "Hide solved" -kytkimen.
- Lajittelukontrolli siirretty yläpalkkiin — aiemmin haudattuna alalaitaan ja piilossa vierityksen takana.
- Suosikit-kytkin siirretty ylempään suodatinpalkkiin — nyt muiden binääristen kytkimien vieressä.
- Suodatinmerkki ei enää näytä "1" oletuksena — oletusnäkymää "Unsolved" ei lasketa sovelletuksi suodattimeksi.
Koko luettelon kattava auditointi: arvostelija ei enää hylkää oikeita vastauksia DATE-vs-TIMESTAMP-sarjallistuksen vuoksi, näyte-esikatselut 60+ tehtävässä vastaavat nyt sitä, mitä viiteratkaisu todella palauttaa, ja 5 tehtävää, jotka käyttävät CURRENT_DATE / NOW(), on kiinnitetty kiinteään viitepisteeseen, jotta esikatselut eivät enää ajaudu päivästä päivään. Lisäksi kuvauskorjaus kuukausittaisten transaktioiden tehtävään käyttäjän vikailmoituksesta.
- Arvostelija: lisätty päivämäärä-aikaleimaksi-normalisointi (
2024-01-01T00:00:00.000Z↔2024-01-01) — oikeat vastaukset eivät enää saa "rivimäärä täsmää, sisältö eroaa" -tulosta paluutyypin muotoilun vuoksi. - Tehtävä "Monthly transactions and chargebacks": kuvaus selventää nyt, että chargeback kuuluu alkuperäisen transaktion kuukauteen, ei hyvityspäivään; esikatselu näyttää kuukauden ensimmäisen päivän päivämäärät TZ-siirrettyjen ISO-aikaleimojen sijaan.
- Uudelleengeneroidut näyte-esikatselut 60+ tehtävässä: numeerinen muotoilu (
100→100.00), aikavyöhykkeen näyttö (+03→+00), DATE-aikaleimana, INTERVAL-oliona — esikatselu vastaa nyt sitä, mitä reaaliaikainen ajuri palauttaa. - Viisi tehtävää, jotka käyttävät
CURRENT_DATE/NOW()/CURRENT_TIMESTAMP-funktioita siemenessään (#170, #601, #602, #668, #693), on nyt kiinnitetty hetkeen2026-05-05 12:00:00 UTC. Esikatselut eivät enää ajaudu.
Blogi uudistettiin: haku, navigointi 10 osion mukaan, ensimmäiset 7 aloittelijoiden ohjetta. Tehtävänsisäisen lunttilapun komentonimet ovat nyt klikattavia linkkejä artikkeleihin. Julkaisusivu sai versiopuun vierityksen seurannalla.
- Blogi: haku otsikoista, sisällöstä ja tageista + vasen osio-sivupalkki. Aktiivinen osio korostuu vieritettäessä.
- Blogi: 7 ensimmäistä aloittelijoiden ohjetta —
SELECT … FROM,WHERE,ORDER BY,LIMIT,INNER JOIN,LEFT JOIN, aliakset. - Tehtävänsisäinen aihelunttilappu: komentonimet ovat nyt sinisiä linkkejä vastaavaan blogiohjeeseen — avautuvat uudessa välilehdessä.
- Julkaisusivu: vasen versiopuu ryhmiteltynä
major.minor-mukaan; klikkaus vierittää versioon ja päivittää hash-ankkurin. - "Copy SQL" -painike jokaisella Submissions-välilehden rivillä.
- Venäjän monikkomuotojen taivutus kaikkialla: "221 задача", "2 задачи", "5 задач" vanhan "221 задач" sijaan.
- Tehtävänsisäinen aihelunttilappu ei enää tärise laajennettaessa — vierityspalkin tila on nyt varattu.
- Markdown-taulukot blogiartikkeleissa renderöityvät nyt HTML-taulukoiksi yksittäisen pelkän tekstirivin sijaan.
Koko luettelon kattava laatutarkastus: 23 ratkaisematonta tehtävää korjattu, 66 englanninkielistä kuvausta kirjoitettu uudelleen, kuvaukset ja näyte-esikatselut yhdenmukaistettu vielä parissa kymmenessä lisää. Lisäksi yksi käyttäjän raportoima korjaus.
- Näyte-esikatselut 50+ tehtävässä vastaavat nyt sitä, mitä viiteratkaisu palauttaa.
- Yhdistettiin päällekkäiset yritystagit tehtävien suodatinchipeissä.
- Korjattu 23 tehtävää (pharma-*, loyal-*, hotel-*, qa-*), joita ei voinut ratkaista kaavio-/siemenristiriidan vuoksi.
- Kirjoitettu uudelleen englanninkieliset kuvaukset 66 lc-* / lc2-* -tehtävässä, jotka aiemmin toimitettiin tynkänä tai katkelmana.
- Tehtävä "Rooms Booked on September 2, 2019" ei enää hyväksy väärää vastausta.
- Kymmenen tehtävää, joissa kuvaus oli ristiriidassa viiteratkaisun kanssa, ovat nyt johdonmukaisia.
- Seitsemän Tochka-tehtävää toimitti jonkun toisen tehtävänannon — kirjoitettiin uudelleen.
69 uutta tehtävää poimittu oikeilta Venäjän markkinoiden työhaastatteluilta (Yandex, Tinkoff, Sber, VTB, Alfa, VK, Ozon, Avito, Magnit, Samokat ja 23 muuta yritystä) — rakennettu laajemman PostgreSQL-tyyppiuniversumin ympärille: UUID, JSONB, ENUM, INTERVAL, TSTZRANGE, INET, NUMERIC ja POINT. Lisäksi keskeisiä korjauksia käyttäjäraporteista ja "What's new" -punapistemerkki sivupalkissa.
- 69 uutta tehtävää otettu oikeilta haastatteluilta venäläisissä yrityksissä. 33 työnantajaa: Yandex, Tinkoff / T-Bank, Sber / SberMarket, VTB, Alfa-Bank, Gazprombank, Rosbank, Sovcombank, MTS / MTS Bank, Otkritie, Renaissance Bank, Megafon, VK, Ozon, Avito, Magnit, Lenta, Wildberries, Cian, ivi, Delimobil, Aviasales, Samokat, Domclick, Lesta, Skypro, Uchi.ru, Sravni.ru, Vizor, CloudReports ja Yandex Practicum. Kaikki merkitty Interview-tunnisteella, saatavilla Premiumissa.
- Rikkaita PostgreSQL-tyyppejä tehtävien kaavioissa. Useimmat tehtävät käyttivät ennen tyyppejä
INT+VARCHAR(100)— sopivaa oppikirjaesimerkeille, kaukana tuotannosta. Uudet tehtävät esittelevätUUID:n asiakas- ja tilauspääavaimille,NUMERIC(15,2):n rahalle jaNUMERIC(12,4):n valuuttakursseille,TIMESTAMPTZ:n tapahtumille,INTERVAL:n puhelujen ja sessioiden kestoille,TSTZRANGE/DATERANGE/NUMRANGE:n SCD2-historioille ja voimassaoloikkunoille,JSONB:n metadatalle ja tapahtumakuormille,ENUM:n (eksplisiittiselläCREATE TYPE:llä) tiloille ja kategorioille,INET:n IP-osoitteille antifraud-tehtävissä,POINT:n GPS-koordinaateille,TEXT[]/INTEGER[]:n tageille ja ID-taulukoille. Näin harjoittelija altistuu samoille tyypeille, joita kohtaat tuotannossa. - Punapistemerkki "What's new" -sivupalkkikohdassa — ilmestyy, kun uusi julkaisu on toimitettu, jota et ole vielä avannut. Piste katoaa yhden
/releases-käynnin jälkeen (lippu elää tämän selaimen localStoragessa). Aiemmin ilmaisin oli vain yläpalkissa; pelkän sivupalkin asetteluissa se ei ollut tavoitettavissa.
- Uusien tyyppien asianmukainen renderöinti kyselyn tulostaulussa. Aiemmin
JSONB-,INTERVAL- jaPOINT-sarakkeet renderöityivät muodossa "[object Object]" ja taulukot (TEXT[],INTEGER[]) romahtivat pilkulla yhdistetyiksi merkkijonoiksi — rakenne oli näkymätön. Nyt JSONB ja taulukot renderöityvät luettavana JSONina, INTERVAL muodossa1d 02:30:00, POINT muodossa(x, y). Totuusarvot ja UUID:t säilyttävät tekstirenderöintinsä. - Tehtäväsivun ER-kaaviot saivat palettikohdat uusille tyypeille: UUID violetti, JSONB keltainen, INTERVAL purppura (sama perhe kuin muut päivämäärä-/aikatyypit), TSTZRANGE / DATERANGE / NUMRANGE vaaleanpunainen, INET syaani, POINT vaaleanpunainen, mukautetut ENUMit ruusunpunainen. Aiemmin nämä tyypit putosivat oletusharmaaseen ja olivat erottamattomia tavallisesta INT / VARCHAR -tyypistä.
- Yllä mainitut kuusi korjattua tehtävää saivat myös rikastetun kaavion samaan tyyliin kuin uusi haastattelusarja:
UUID-pääavaimet,JSONB-kuormat,ENUM-tyypit sukupuolelle / kategorioille / tiloille,NUMERIC(15,2)INT:n tilalla palkoille ja hinnoille,INTERVALkestoille. Tehtävien sanamuotoa säädettiin hieman uusien tyyppien perustelemiseksi, mutta taustalla oleva ongelma on muuttumaton. Tämä on ensimmäinen askel vanhempien tehtävien päivittämisessä — lisää tulevissa julkaisuissa.
- Korjattiin kourallinen vanhempia, käyttäjien raportoimia tehtäviä. "Project Employees II" — ER-kaavio näytti Employee + Department -taulut Project + Employee -taulujen sijaan, vaikka taustakaavio oli oikein; saatettiin kaavio linjaan. "Reported Posts" — kuvaus ei kertonut, että ilmoituksen syy on
extra-sarakkeessa: nyt kertoo. "Sales Analysis I" — viiteratkaisu käyttiSUM(price)-funktiota vaikka kaaviossa onquantity-sarake, mikä oli sekavaa; muotoiltiin uudelleenSUM(quantity * price)-muotoon, lähempänä todellista liikevaihtoa. "Swap Salary" — tehtävä oli kytketty väärään datajoukkoon (Employee + DepartmentSalary(id, name, sex, salary):n sijaan), mikä teki siitä ratkaisemattoman; uudelleenlinkitettiin kanoniseen datajoukkoon. Sama hiljainen ER-ajautuminen "Project Employees III":ssa ja "Reported Posts II":ssa sai saman korjauksen.
Suuri julkaisu: uusi vasemman sivupalkin navigointi, tiukka Mock Interview -tila +25% Power-bonuksella, julkiset profiilit ja kaverit, sähköposti-ilmoitukset, brändivärilliset yritystagit, lisäsuodattimet ja kumppanikurssilohko. Lisäksi tärkeä tilien välinen yksityisyyskorjaus ja kymmeniä UX-hiomakohtia.
- Kumppanikurssilohko. Tehtäväsivulla (leveillä näytöillä) oikeanpuoleinen sarake näyttää kuratoidun joukon kumppanikursseja; mobiilissa se on vaakakaruselli listan yläpuolella. Kortit linkittävät kumppanien aloitussivuille UTM-tageilla — meille tapa pitää tilaushinta alhaisena kattamalla infrastruktuurikustannukset.
- Uusi Mock Interview -tila — tiukka simulaatio oikeasta haastattelusta. Mikä tahansa yksittäinen rikkomus (välilehden vaihto, liittäminen, koko näytön tilasta poistuminen, > 1 sekunnin ikkunan fokuksen menetys) hylkää session automaattisesti. Vihjeet, AI Mentor ja lunttilappu ovat piilotettuja ja lukittuja. Kestot: 5 / 10 / 15 / 30 / 60 minuuttia. Ilmaistaso — 1 yritys päivässä; Premium — rajaton. Kun sessio on käynnissä, ympäröivä navigointi (sivupalkki, "Tasks", "Top solutions", "Next task", "Leave track", Prev/Next/Random) on lukittu — ainoa ulospääsy on eksplisiittinen "End"-painike tai välilehden sulkeminen (joka hylkää session automaattisesti).
- +25% Poweria jokaisesta Mock Interview -tilassa läpäistystä tehtävästä — bonus on tehtäväkohtainen ja merkitty session jälkeiseen raporttiin. Tulostaulussa on nyt informatiivinen "Mock"-sarake (sama luku näkyy profiilikortilla ja sivulla
/u/<username>); se ei vaikuta Poweriin perustuvaan lajittelujärjestykseen. - Julkiset profiilit osoitteessa
/u/<username>: valitse lyhyt tunnus ja käännä julkinen kytkin päälle — kuka tahansa anonyymi vierailija näkee sijoituksesi, Powerisi, nykyisen putkesi, saavutusten määrän, aktiivisuuden lämpökartan ja GitHub / Telegram / LinkedIn -linkit. Yksityistä dataa ei paljasteta. - Kaverit: lisää käyttäjiä heidän julkisella tunnuksellaan, hallitse saapuvia ja lähteviä pyyntöjä, näe oma kaveritulostaulu-välilehti heidän Powerinsa, putkensa ja ratkaistujen tehtävien kanssa.
- Suosikit: jokaisella tehtäväkortilla on nyt tähti — klikkaa sitä ja tehtävä päätyy "Favourites only" -suodattimeen. Lista elää palvelimella tiliisi sidottuna ja säilyy selaimen vaihtojen yli.
- Sähköposti-ilmoitukset (kytkimet profiilissa). "Save your streak" — iltamuistutus, kun putkesi on ≥ 3 päivää etkä ole ratkaissut mitään tänään. "Weekly digest" — lauantaiaamun yhteenveto viime viikon ratkaistuista tehtävistä, nykyisestä putkesta ja heikoimmasta kategoriasta.
- Premium-käyttäjät on merkitty visuaalisesti kaikkialla, missä avatareita näkyy: holografinen liukuvärirengas (tulostaulu, kaverit, profiili, sivupalkki, julkinen
/u/<username>-sivu); pieni Crown-merkki kulmassa suurissa avatareissa. Ei vaikuta lajittelujärjestykseen. - Brändivärilliset yritystagit tehtäväkorteissa: keltainen Yandexille / Tinkoffille / Beelinelle, vihreä Sberbankille / Spotifylle / OpenAI:lle, sininen VK:lle / Ozonille / Googlelle / Metalle, punainen MTS:lle / Alfalle / Teslalle, purppura Stripelle / Skyprolle / Wayfairille, oranssi Amazonille / Alibaballe ja niin edelleen. Aiemmin jokainen tagi oli yhtä purppuraa.
- Lisää SQL-lausekkeen chipejä tehtäväsivun "Topic"-suodattimessa: 8 laajan kategorian (SELECT, JOIN, alikyselyt, ikkuna, aggregaatit, CTE, DML, DDL) ohella voit nyt valita
GROUP BY,COUNT,HAVING. Sekoita niitä kategorioiden kanssa tarkempaan suodatukseen. - Tehtäväsivun "DB Schema" -paneelin voi nyt tiivistää. Tehtävän otsikon vieressä oleva kytkin piilottaa sarakkeen ja vapauttaa leveyttä editorille ja tulostaululle. Tiivistystila muistetaan selainkohtaisesti, joten kaavio avautuu samalla tavalla seuraavassa tehtävässä.
- 8 uutta haastattelutehtävää Tochkalta — EASYsta HARDiin. CRM-skenaariot (etsi asiakkaat aktiivisella hakemuksella), salkkulaskelmat (rakenne, painotettu keskimääräinen juoksuaika, arvon kehitys), joukkovelkakirjakyselyt ikkunafunktioilla. Ratkaisut sekä PostgreSQL:lle että MySQL:lle.
- Blogiosio osoitteessa
/blog. Pitkät ohjeet — käynnistyy ikkunafunktioiden syväluotauksella. Kaksikielinen sisältö, slug-URL:t, OG-kortit sosiaaliseen jakamiseen. Tavoitettavissa alatunnisteesta ja sivupalkin alalaidasta. - Mukautettu 404-sivu. Vanha Next.js-oletus renderöi mustaa tekstiä valkoisella — näkymätöntä tummassa tilassa. Uusi sivu käyttää teematokeneita ja elää jaetun kuoren sisällä, pitäen navigoinnin ulottuvilla.
- Navigointi suunniteltu uudelleen. Kirjautuneille käyttäjille sovelluksen sisällä päänavigointi on siirtynyt vasempaan sivupalkkiin — Trainer, Progress, Leaderboard ja muut osiot ovat siellä, Power + putki avatarisi alla ja kieli-/teemakytkimet alalaidassa. Aloitussivu, hinnoittelu ja kirjautumisvirrat säilyttävät hoikan yläpalkin. Apusivut (What's new / Report a bug / Blog) perivät sen kehyksen, josta tulit.
- Premium-liukuvärirengas avatareiden ympärillä näkyy nyt jokaisella tulostaulu-välilehdellä — aiemmin rengas näkyi vain "All time" -välilehdellä ja katosi hiljaisesti "Week"- ja "Month"-välilehdiltä, koska taustapuoli ei lähettänyt tilauslippua jaksottaisille sijoituksille.
- Profiilissa tehdyt nimi- ja avatarimuutokset heijastuvat nyt välittömästi sivupalkkiin — sivun uudelleenlatausta ei tarvita. Aiemmin vanha käyttäjäkortti saattoi jäädä roikkumaan täyteen päivitykseen asti.
- Tilien väliset datavuodot vaihdettaessa käyttäjää samassa selaimessa. Aiemmin uloskirjautumisen / toisella tilillä sisäänkirjautumisen jälkeen nämä saattoivat säilyä: AI Mentor -keskusteluketjut, SQL-luonnokset editorissa, tehtäväkohtaiset "solved"-liput, aktiiviset mock-haastattelusessiot, AI-generointilaskuri, suosikkien välimuisti. Nyt uloskirjautuminen ja jokainen sisäänkirjautumispolku (lomake, OAuth, sähköpostin vahvistus) pyyhkii kaiken edelliseen käyttäjään sidotun.
- "Friends rating" -linkki profiilista päätyy nyt suoraan Friends-välilehdelle — aiemmin se pudotti sinut globaaliin tulostauluun. "Start here" -aloittelijakaista ei enää palaa sen jälkeen, kun olet hylännyt sen; aiemmin hylkäys nollautui jokaisella uloskirjautumisella / sisäänkirjautumisella.
- Kymmeniä mobiiliasettelun ja vuorovaikutuksen hiomakohtia: tiiviimpi session jälkeinen raporttimodaali, oikea suodatinväli kapeilla näytöillä, palautebanneri ei enää mene sivupaneelin päälle 1024px:ssä, nimi- + sähköpostikentät vikailmoitussivulla anonyymeille lähettäjille.
Editorin UX-pikakorjaus kapeilla näytöillä: "Editor settings" -ponnahdusikkuna ei enää leikkaudu koodipaneelin takana eikä valu mobiilissa näkymän reunan yli. Sama hammasrataspainike, joka työpöydällä on, asuu nyt myös mobiilin työkalupalkissa, ja fonttikokoasetus pätee viimein mobiilieditoriin.
- "Editor settings" -ponnahdusikkuna saattoi leikkaantua sivun reunoista eikä siinä ollut sisäistä vieritystä — kapealla kannettavalla tai puhelimella puolet asetuksista oli yksinkertaisesti näkymättömissä. Ponnahdusikkuna renderöityy nyt koko sivun päälle (portaalin kautta), kiinnittyy automaattisesti näkyvälle alueelle ja kasvattaa sisäisen vierityspalkin, kun sisältö ylittää näkymän korkeuden. Otsikon ja sulkupainikkeen sisältävä ylätunniste pysyy kiinnitettynä vieritettäessä.
- Mobiilieditorinäkymässä (≤1024px) työkalupalkista puuttui editorin asetusten hammasratas — "Font size" oli tavoitettavissa vain työpöydältä. Hammasratas on nyt PG/MySQL:n ja Formatin vieressä, ja fonttikokoasetus skaalaa todella mobiilieditorin syötteen.
Pikakorjaus vikailmoituksesta: tehtävä #240 ("Staff Bonuses") renderöi väärän kaavion — se näytti Employee + Department todellisen Employee + Bonus:n sijaan, tehden tehtävänannosta lukukelvottoman.
- Tehtävä #240 "Staff Bonuses": kaavionäkymä renderöi vanhentuneita tauluja
Employee + Department(kentillädepartment_id,manager_id) ja tyhjänDepartment-välilehden. Hiekkalaatikko ja viiteratkaisu olivat koko ajan oikein — vain näkymän metadata oli pielessä. Nyt kaavio näyttää todellisetEmployee + Bonus-taulut yhteydelläBonus.empId → Employee.empId.
Rikastettiin datajoukkoja 268 tehtävässä 339:stä — täydemmät lähdetaulut, merkityksellisempiä rivejä odotetussa tulosteessa, tehtävät eivät enää tunnu rikkinäisiltä.
- Massadatajoukkojen rikastus: 268 tehtävää 339:stä sai täydemmän siemenedatan — tyypillisesti 6–12 riviä päätauluissa 2–4:n sijaan, vaihtelulla viiteratkaisun käyttämillä suodatus-/JOIN-/GROUP BY -akseleilla. Kosketettiin 137 ainutlaatuista datajoukkoa. Viiteratkaisut ja kaaviot ovat muuttumattomia. Käyttäjien edistyminen on säilytetty — jo ratkaistut tehtävät pysyvät ratkaistuina, Poweria ja saavutuksia ei lasketa uudelleen.
- Jokainen rikastettu tehtävä validoitiin: viiteratkaisu ajettiin uutta siemenedataa vasten suorittimen kautta, sample_output regeneroitiin todellisesta tuloksesta.
- Tehtävä #38 (
well-paid-employees) — alun perin v1.2.4-pikakorjaus, nyt osa laajempaa tarkastusta.
Pikakorjaus vikailmoituksesta: "Expected output sample" -paneeli selventää nyt, ettei siellä olevan rivimäärän tarvitse vastata kaaviotauluja.
- Lisätty huomautus "Expected output sample" -paneelin yläpuolelle: "näin oikea vastaus näyttää — sen rivimäärä on omansa, sen ei tarvitse vastata kaaviotauluja". Aiemmin käyttäjät laskivat rivejä yhdessä kaaviotaulussa ja olettivat tehtävän olevan rikki, kun luvut erosivat.
Pikakorjaus vikailmoituksesta: tehtävä #38 "Salary higher than manager" toimii nyt kunnollisella datajoukolla kolmella todellisella tapauksella. Lisäksi pieni oranssi piste "What's new?":ssa, kun tuore julkaisu toimitetaan.
- Pieni oranssi piste ilmestyy "What's new?" -navigointikohtaan, kun tuore julkaisu toimitetaan. Yksi käynti
/releases:ssä tyhjentää sen seuraavaan julkaisuun asti.
- Tehtävä #38 (
well-paid-employees): datajoukko oli liian harva — 6 työntekijää ja yksi ainoa "alainen ansaitsee enemmän kuin esimies" -tapaus, mikä sai sen näyttämään siltä, että data oli väärin. Laajennettu 9 työntekijään kahdessa osastossa kolmella selkeällä tapauksella (Eve > Alice, Frank > Dave, Henry > Bob).
Uusi "Report a bug" -sivu kuvakaappausliitteillä, toissijainen navigointiryhmä ja tiiviimpi "Start here" -kaista mobiilissa.
- Uusi "Report a bug" -sivu navigointipalkissa: aihe- + kuvauslomake jopa 5 kuvakaappauksella / lyhyellä klipillä (vedä ja pudota tuettu). Ilmoitukset päätyvät postilaatikkoomme nopeaan käsittelyyn.
- Navigointipalkki saa toissijaisen ryhmän — "What's new?" ja "Report a bug" — erotettuna ensisijaisista välilehdistä ohuella pystyviivalla.
- Aloittelijoiden "Start here" -kaista on tiiviimpi mobiilissa — lyhyempi otsikko, piilotettu kuvaus, kapeammat kortit. Vapauttaa tilaa itse tehtävälistalle.
- Aloittelijoiden "Start here" -kaista ei enää vilahda hetkeksi tehtäväsivua avattaessa — renderöityy nyt vasta
/progress:n ratkettua. - Julkaisutietojen kohokohta (ylin yksirivinen) renderöi nyt taustahakaset oikein — aiemmin näytti literaalin "
?lang=" tyylitellyn code-pillerin sijaan. - Haamupystyvieritys "Learning Tracks" -sivulla on poissa —
min-h-screenyhdistettynä navigointipalkkiin pakotti ~60px ylimääräistä korkeutta, vaikka sisältö mahtui.
UX-hiomista koko harjoittelijassa sekä ?lang= URL-parametri mainoksille ja suorille kielikohtaisille linkeille.
- Päädy tietylle kielelle
?lang=en- tai?lang=ru-parametrilla URL:ssa:https://sql.coderang.dev/?lang=en. Kätevä mainoksille ja kielikohtaisten linkkien jakamiseen; valinta muistetaan vuoden ajan.
- Kun päivittäiset AI-vihjeet loppuvat, "Explain"-painikkeesta tulee "Cheatsheet" ja se avaa aiheviitteen.
- Suosikkitähti on nyt näkyvissä mobiilissa ja heikosti näkyvissä työpöydällä sen sijaan, että se olisi piilossa ennen hiiren päälle viemistä.
- Tehtävän kuvaus ei enää hyppää, kun lunttilappu laajenee. Tähti on kirkkaampi hiiren päällä.
- DDL-tehtävissä kaaviopaneeli näyttää "no starting tables; create them" tyhjän kankaan sijaan.
- AI-painike sykkii nyt todella vain virheissä (animaatioluokkaa ei aiemmin ollut koskaan määritelty).
- Navigointipalkin Power ja Streak siemennetään localStoragesta ennen palvelinhakua — ei enää "0 ⚡" -vilahdusta.
- AI-generointilaskuri ei enää nollaudu 0:aan generoidulle tehtävälle uudelleenohjauksen jälkeen.
- Mobiilihienosäätöjä: yhtä leveät vaikeusmerkit (Star linjattu), alavälilehden teksti mahtuu, päivittäisen laskurin skaala-animaatio, putki-ikonin työkaluvihje, venäjän monikkosäännöt.
- Venäläisten yritysten nimet (Сбербанк, Яндекс, Авито…) renderöityvät nyt latinalaisella translitteroinnilla (Sberbank, Yandex, Avito) englanninkielisessä käyttöliittymässä; kyrillinen säilyy venäjässä.
- Lunttilapun kohtien nimet (Aliases, Scalar subquery jne.) kääntyvät nyt oikein kieltä vaihdettaessa.
- Viikoittainen/kuukausittainen tulostaulu soveltaa nyt ensimmäisellä yrityksellä ×2 -bonuksen ja jättää uudelleenlähetykset huomiotta, vastaten sitä, miten elinikäinen Power lasketaan. Aiemmin jaksonäkymä näytti suunnilleen puolet eliniästä — vika laskennassa, ei datassa.
- Poistettiin kuollut Solutions-välilehti — mikään painike ei aktivoinut sitä, mutta se kahdensi latauksen.
- Taustahakaset eivät enää jätä väliä ennen perässä tulevaa välimerkkiä ("
Action."). - Tulospaneelin tyhjätilat kääntyvät nyt oikein englanniksi.
Hiomista dataa muuttaville tehtäville ja kuvausten renderöinnille kauttaaltaan.
- Huomio DDL/DML-tehtäville: UPDATE/INSERT/DELETE- ja CREATE/ALTER/DROP-tehtävät näyttävät nyt lyhyen "no trailing SELECT needed" -huomautuksen — ei enää arvailua siitä, mitä tulostaa.
- Aihelunttilappu huomioi nyt tehtävätyypin: DML-tehtävät eivät enää näytä SELECT/ORDER BY/LIMIT, DDL-tehtävät näyttävät vain kaaviota muuttavat komennot.
- Taustahakasiin merkityt tokenit tehtäväkuvauksissa (\
id = 4\, \users.email\) renderöityvät nyt korostetuiksi code-pillereiksi raakatekstin sijaan — kuvaukset lukeutuvat täsmälleen niin kuin tekijät ne kirjoittavat. - Lunttilapun koodilohkot ovat nyt korostetulla vasemmalla palkilla ja hienovaraisella reunalla — ne lukeutuvat oikeina koodinpätkinä harmaiden möykkyjen sijaan.
Aloittelijoiden perehdytys: "Start here" -kaista, aloitus-SQL ensimmäisessä tehtävässäsi ja aihelunttilappu jokaisen tehtävän sisällä. Väärän vastauksen vihjeet ovat nyt täsmällisiä eivätkä polta AI-kiintiötäsi.
- "Start here" -kaista tehtäväsivun yläosassa — 8 yksinkertaista SELECT-tehtävää ensikertalaisille. Näkyy, kunnes ratkaiset jotain; vedä-vierittääksesi tarttumiskursorilla.
- Aloitus-SQL editorissa. Aivan ensimmäinen avaamasi tehtävä esitäyttää
SELECT * FROM <first_table> LIMIT 5;jotta voit painaa ▶ heti ja nähdä, miltä data näyttää. - Aihelunttilappu. Tehtäväpaneelissa on nyt tiivistettävä viitelohko, jossa on olennaisia SQL-komentoja, syntaksia ja yhden rivin selitys — räätälöity aiheittain: SELECT, JOIN, aggregaatit, alikyselyt, ikkunat, CTE, DML, DDL.
- Väärän vastauksen banneri on nyt täsmällinen: se nimeää liiat/puuttuvat sarakkeet, rivierot, lajitteluongelmat ja yleiset SQL-virheet. Toimii paikallisesti, ei kuluta AI-kiintiötä.
Aliakset huomioiva automaattitäydennys SQL-editorissa ja merkittäviä mobiiliasettelun parannuksia.
- Julkaisusivu: päivityshistoria on nyt nähtävissä osoitteessa /releases.
- Aliakset huomioiva automaattitäydennys.
<alias>.:n jälkeen ehdotukset rajataan kyseisen yksittäisen taulun sarakkeisiin. Aliakset itse täydentyvät Tabilla. .on nyt liipaisinmerkki: ehdotukset ponnahtavat automaattisesti sen jälkeen, ilman Ctrl+Space-tarvetta.
- Mobiilivalikko peittää nyt sisällön sen sijaan, että työntäisi sivun alas. Sulkeutuu napautuksella ulkopuolelle.
- 300+ tehtäväkuvausta kirjoitettu uudelleen: lisätty liiketoimintakonteksti, lueteltu tulostesarakkeet, tehty lajittelu ja pyöristys eksplisiittisiksi.
- Mobiilin tehtäväkuvaus vierittyy nyt oikein, kun teksti on pitkä. Aiemmin se juuttui ja esti pääsyn alalaidan välilehtiin.
- Harjoittelijan alavälilehtipalkki on nyt aina näkyvissä millä tahansa mobiiliselaimella (Yandex Browser, MIUI, Samsung Internet). Aiemmin se leikkautui näkymän alapuolelle.
- Mobiilivalikko on nyt täysin läpinäkymätön. Aiemmin 5 % taustasisällöstä näkyi läpi selaimissa, joissa ei ole backdrop-filter-tukea.
- Kapeilla näytöillä (320px ja alle) tehtävien lajittelupudotusvalikko ei enää valu oikean reunan yli.
- Vanha automaattitäydennysvika:
t.e:n kirjoittaminenFROM employee t:n jälkeen lisäsit.employee.salary(virheellinen SQL). Aliasta kunnioitetaan nyt.
SQL Arenan ensimmäinen vakaa julkaisu.
- 259 kuratoitua SQL-tehtävää 6 kategoriassa: SELECT, JOIN, aggregaatti, alikysely, ikkuna, DML.
- 96 haastattelutehtävää huipputeknologiayrityksiltä (Google, Meta, Amazon, Stripe jne.).
- Kahden SQL-murteen tuki — PostgreSQL ja MySQL välittömällä vaihdolla.
- AI-tehtävägenerointi: ainutlaatuisia tehtäviä, jotka on mukautettu taitotasoosi.
- AI Mentor: kontekstuaalisia vihjeitä paljastamatta vastausta.
- 3 oppimispolkua: jäsenneltyjä reittejä perusteista edistyneeseen SQL:ään.
- Reaaliaikainen SQL-suoritus hiekkalaatikkoympäristössä tuloksen arvostelulla (sarake-/rivi-/järjestysero).
- OAuth-todennus GitHubin, Googlen, Yandexin kautta sekä sähköposti-/salasanarekisteröinti.
- XP-pohjainen (Power) tulostaulu, käyttäjäprofiilit, saavutukset, tumma ja vaalea teema.
- Premium-tilaus YooKassa-integraatiolla ja botinestoon perustuvalla nopeusrajoituksella.
- Interaktiiviset ER-kaaviokuvat, Monaco-editori SQL-korostuksella ja -muotoilulla.
- Kaksikielinen käyttöliittymä: venäjä ja englanti.