Stack Overflow’s forum is dead thanks to AI, but the company’s still kicking… thanks to AI – Sherwood News (and a few links on SEDE – Stack Exchange Data Explorer) « The Wiert Corner – irregular stream of stuff
The Wiert Corner – irregular stream of stuff Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests
Home Wiert.me About the Wiert Corner Privacy Policy Conferences, seminars and other public appearances Posting categories Archives Toolbox Contact form License
Subscribe
Entries (RSS) Comments (RSS)
May 2026
M T W T F S S
123
45678910
11121314151617
18192021222324
25262728293031
« Apr
Archives
May 2026 (35) April 2026 (45) March 2026 (45) February 2026 (47) January 2026 (48) December 2025 (54) November 2025 (47) October 2025 (50) September 2025 (49) August 2025 (47) July 2025 (50) June 2025 (47) May 2025 (48) April 2025 (46) March 2025 (44) February 2025 (48) January 2025 (55) December 2024 (48) November 2024 (44) October 2024 (51) September 2024 (46) August 2024 (53) July 2024 (50) June 2024 (36) May 2024 (33) April 2024 (33) March 2024 (36) February 2024 (28) January 2024 (28) December 2023 (27) November 2023 (24) October 2023 (24) September 2023 (29) August 2023 (31) July 2023 (33) June 2023 (26) May 2023 (26) April 2023 (31) March 2023 (26) February 2023 (27) January 2023 (24) December 2022 (33) November 2022 (27) October 2022 (23) September 2022 (25) August 2022 (24) July 2022 (26) June 2022 (26) May 2022 (23) April 2022 (32) March 2022 (69) February 2022 (63) January 2022 (66) December 2021 (75) November 2021 (66) October 2021 (64) September 2021 (67) August 2021 (69) July 2021 (69) June 2021 (69) May 2021 (68) April 2021 (67) March 2021 (72) February 2021 (63) January 2021 (65) December 2020 (70) November 2020 (64) October 2020 (68) September 2020 (67) August 2020 (67) July 2020 (71) June 2020 (68) May 2020 (64) April 2020 (67) March 2020 (70) February 2020 (61) January 2020 (74) December 2019 (70) November 2019 (63) October 2019 (73) September 2019 (68) August 2019 (66) July 2019 (68) June 2019 (68) May 2019 (72) April 2019 (73) March 2019 (64) February 2019 (68) January 2019 (78) December 2018 (87) November 2018 (77) October 2018 (79) September 2018 (77) August 2018 (76) July 2018 (74) June 2018 (63) May 2018 (70) April 2018 (63) March 2018 (72) February 2018 (48) January 2018 (83) December 2017 (67) November 2017 (62) October 2017 (63) September 2017 (52) August 2017 (62) July 2017 (48) June 2017 (57) May 2017 (68) April 2017 (55) March 2017 (59) February 2017 (58) January 2017 (60) December 2016 (59) November 2016 (74) October 2016 (61) September 2016 (87) August 2016 (57) July 2016 (51) June 2016 (49) May 2016 (48) April 2016 (51) March 2016 (49) February 2016 (50) January 2016 (48) December 2015 (59) November 2015 (57) October 2015 (37) September 2015 (31) August 2015 (41) July 2015 (31) June 2015 (37) May 2015 (30) April 2015 (32) March 2015 (37) February 2015 (52) January 2015 (50) December 2014 (43) November 2014 (39) October 2014 (40) September 2014 (41) August 2014 (58) July 2014 (32) June 2014 (23) May 2014 (38) April 2014 (105) March 2014 (145) February 2014 (81) January 2014 (56) December 2013 (58) November 2013 (32) October 2013 (26) September 2013 (26) August 2013 (54) July 2013 (47) June 2013 (41) May 2013 (33) April 2013 (41) March 2013 (50) February 2013 (47) January 2013 (55) December 2012 (32) November 2012 (23) October 2012 (37) September 2012 (52) August 2012 (46) July 2012 (40) June 2012 (30) May 2012 (27) April 2012 (30) March 2012 (29) February 2012 (32) January 2012 (25) December 2011 (38) November 2011 (28) October 2011 (46) September 2011 (63) August 2011 (35) July 2011 (24) June 2011 (24) May 2011 (24) April 2011 (29) March 2011 (50) February 2011 (48) January 2011 (18) December 2010 (5) November 2010 (18) October 2010 (22) September 2010 (29) August 2010 (24) July 2010 (27) June 2010 (29) May 2010 (25) April 2010 (23) March 2010 (10) February 2010 (6) January 2010 (16) December 2009 (12) November 2009 (3) October 2009 (11) September 2009 (21) August 2009 (11) July 2009 (11) June 2009 (5) May 2009 (12) April 2009 (20)
*nix *nix-tools .NET About Apple C# Conferences Conference Topics Delphi Development Event Google Hardware Hardware Development History Internet LifeHacker Linux Mac OS X / OS X / MacOS Personal Power User Scripting Security SocialMedia Software Development Source Code Management VMware Web Development Windows Windows 7 Recent Comments
Jeroen Wiert Pluimer… on Arjen Lentz Crystal Ball Vulne…Jeroen Wiert Pluimer… on Digitale toegankelijkheid als…Jeroen Wiert Pluimer… on Digitale toegankelijkheid als…Vereniging NLUUG on Digitale toegankelijkheid als…jpluimers on Sony STR-DE205 Receiver…
Recent Posts
Stack Overflow’s forum is dead thanks to AI, but the company’s still kicking… thanks to AI – Sherwood News (and a few links on SEDE – Stack Exchange Data Explorer)
KotlinConf’23 video streams (including the keynote by Kevlin Henney which is generic to any programming language or concept)
Figuring out which COM Surrogate dllhost.exe process to kill (via The Old New Thing)
Flipper Zero: Amazon.de: Garden
Zorgcriminelen richten zich op Wlz, zorgkantoren beloven actie – Skipr
Blog Stats
3,663,699 hits
Meta title
Create account Log in Entries feed Comments feed WordPress.com
Tag Cloud Title 1 2 3 3dprinting 4 6 7 8 14 16 18 25 32 android Apple arts aviation batch file bitbucket blogging computer Conferences define Delphi delphi 1 delphi 5 design developer documentation education embarcadero flickr fonts gadgets geeks gmail google google search include infosec internet iOS iphone jeroen mac os x Media microsoft surface mobile nick hodges pascal path names pdf photography Privacy Python RaspberryPi research science scott hanselman shorts software sourcecode language sourceforge ssd stack overflow technology transportation Travel twitter vcl vm VMware VMware Fusion wordpress xkcd Top Clicks personal.avira-update.com…biblio.com/9780201100884tweeterid.comsomoit.net/windows/window…web.archive.org/web/20190…beige.party/@tuban_muzuru…hpmuseum.org/forum/thread…office.microsoft.com/en-u…support.google.com/accoun…communities.vmware.com/th… Top Posts Stack Overflow’s forum is dead thanks to AI, but the company’s still kicking... thanks to AI - Sherwood News (and a few links on SEDE - Stack Exchange Data Explorer)Calls from +18553308653 might be because someone is trying to use your phone number to setup a Microsoft account two factor authenticationWhen NTFS shrink fails, despite using the default settings from the shrink dialogDELL fans use a different pin-layout than normal fans, so watch out before connecting them!How to access Archive.org's Google+ communities archive? : googleplusLIDL Radio Controlled Wall Clock IAN 100489 English manualThe toxic reactions to "What would be good alternatives to Stack Overflow for questions about software solutions to drive hardware? - Meta Stack Overflow"Word Clouds and algorithms to generate thembrowser - How to connect a website has only IPv6 address without domain name? - Super UserFiguring out which COM Surrogate dllhost.exe process to kill (via The Old New Thing)
My badges
Mastodon
Twitter Updates Tweets by jpluimers My Flickr Stream
More Photos
Pages
About the Wiert Corner
bio Music I like
Archives Conferences, seminars and other public appearances Contact form License Posting categories Privacy Policy Toolbox
DNS Links spring4d Status
Wiert.me
All categories All categories Select Category About (396) Personal (375) Adest Musica (25) Autistic Spectrum/Autism (11) Cancer (21) Rectum cancer (15) Certifications (2) Curatele (9) FoodForThought (2) Photography (13) Running (1) Travel (15) Antarctic (4) Awareness (108) Climate change (5) Inclusion / inclusive society (19) Paranormal Bollocks (1) Pseudoscience Bollocks (2) Quackery Bollocks (1) Religion Bollocks (1) Comics (21) Development (5,371) #alleskaputt (1) accessibility (a11y) (21) Assembly Language (52) 6502 Assembly (11) ARM (10) AArch64/arm64 (3) MIPS R4000 (1) x64 (12) x86 (28) Turbo Assembler (4) Communications Development (178) HIS Host Integration Services (2) Internet protocol suite (169) SMTP (23) TCP (146) FTP (2) HTTP (60) REST (21) OData (2) WebDAV (1) WebSockets (3) SMB (2) SSH (46) OpenSSH (5) SFTP (5) TIBCO Rendezvous (1) TLS (27) UDP (8) DHCP (2) URI (1) WebRTC (1) SNA (1) APPC (1) CPI-C (1) Content Management (1) Database Development (265) Access (8) DB2 (8) dBase (1) Firebird (62) InterBase (36) Jet OLE DB (1) MariaDB (4) MySQL (27) NexusDB (1) NoSQL (2) MongoDB (1) ODBC (3) OracleDB (32) PL/SQL (3) Paradox (3) PostgreSQL (20) PostGIS (1) SQL (65) SQL Server (129) Reporting Services (2) SQL Server 2000 (33) MSDE 2000 (1) SQL Server 2005 (34) SQL Server 2008 (42) SQL Server 2008 R2 (44) SQL Server 2012 (45) SQL Server 2014 (9) SQL Server 7 (15) SSMS SQL Server Management Studio (4) T-SQL (2) SQLite (14) Sybase (5) Sybase SQL Anywhere (1) Deployment (6) Documentation Development (4) Electronics Development (18) EPS/PostScript (12) Hardware Development (275) Arduino (16) ARM Cortex-M (2) STM32 (2) ESP32 (18) ESP8266 (9) ESP8266X (4) Odroid (7) Raspberry Pi (114) Compute Module (3) RP2040 (8) Raspberry Pi Pico (3) Soldering (12) Hardware Interfacing (79) Arduino (2) FireWire (1) HDMI (6) Legacy Ports: COM (3) USB (23) Servo (1) WebCam (2) IIS (9) internatiolanization (i18n) and localization (l10) (18) Micro Services (2) Mobile Development (82) Android (60) AndroidWear (1) Google Assistant (1) iOS Development (12) Windows CE (2) Windows Phone Development (4) Software Development (4,744) .NET (877) .NET 1.x (60) .NET 2.0 (104) .NET 3.0 (115) .NET 3.5 (125) .NET 4.0 (146) .NET 4.5 (156) .NET 4.8 (1) .NET CF (10) .NET Core (10) .NET Framework (2) .NET ORM (13) EF Entity Framework (11) NHibernate (3) .NET Standard (6) .NET Core (4) ASP.NET (42) ASP.NET core (2) C# (477) C# 1.0 (78) C# 10 (4) C# 11 (5) C# 2.0 (177) C# 3.0 (189) C# 4.0 (215) C# 5.0 (176) C# 6 (Roslyn) (50) C# 7 (2) C# 8 (3) C# Builder (1) RemObjects C# (7) EnterpriseLibrary (1) F# (15) LINQ (9) PLINQ (1) LLBLGen (2) MEF (2) Microsoft Surface (4) Mono (2) Mono for Android (7) MonoDevelop (1) MonoTouch (7) Office PIA (3) Prism (40) Reflection (3) RESX (1) Rider from JetBrains (1) SilverLight (3) Testing.NET (2) MSTest (2) NUnit (1) VSTest (2) UWP (Universal Windows Platform) (1) VB.NET (56) VB.NET 10.0 (14) VB.NET 11.0 (13) VB.NET 14.0 (2) VB.NET 7.0 (10) VB.NET 7.1 (10) VB.NET 8.0 (13) VB.NET 9.0 (13) Visual Studio and tools (195) Visual Studio 11 (55) Visual Studio 2002 (16) Visual Studio 2003 (20) Visual Studio 2005 (42) Visual Studio 2008 (48) Visual Studio 2010 (82) Visual Studio 2012 (10) Visual Studio 2013 (28) Visual Studio 2014 (17) Visual Studio 2015 (26) Visual Studio 2017 (7) Visual Studio 2019 (1) Visual Studio 2022 (1) WinForms (15) WPF (10) Xamarin Studio (5) XAML (2) XNA (3) Agile (141) Code Quality (18) Code Review (6) DRY (1) Extreme Programming (X) (2) Refactoring (2) Scrum (10) Unit Testing (28) AI and ML; Artificial Intelligence & Machine Learning (59) Generative AI (7) GPT-3 (14) ChatGPT (13) GPT-4 (4) LLM (35) DeepSeek (1) GitHub Copilot (6) ALGOL (1) Algorithms (90) Date and Time algorithms (1) Floating point handling (29) 8087 (7) Unum (1) APL (5) AS/400 / iSeries / System i (4) B (2) Back-End Development (2) Barcode (12) EAN (5) KIX (3) QR code (2) RM4SCC (2) BASIC (9) Applesoft BASIC (1) Visual BASIC (2) VB6 (1) BASS (2) C (84) gcc (3) Turbo C (2) C++ (105) Borland C++ (7) C++ Builder (11) Carbon (2) Qt (1) Visual Studio C++ (13) Cloud Development (42) Google Cloud Function (1) Windows Azure (14) COBOL (13) Code Visualisation (1) Color (software development) (19) CommandLine (158) PowerShell (126) Continuous Integration (43) Continua CI (17) CruiseControl.net (3) Maven (1) msbuild (14) TeamCity (1) TravisCI (1) Conventions (3) Naming Conventions (2) CSV (18) D (2) Data Structures (1) DDD Domain Driven Development (1) Debugging (49) GDB (3) MAP Symbol Information (4) Remote Debugging (2) TD32/TDS Symbol information (4) Turbo Debugger (2) Delphi (1,610) Appmethod (16) Castalia (11) Delphi 1 (46) Delphi 10 Seattle (82) Delphi 10.1 Berlin (BigBen) (62) Delphi 10.2 Tokyo (Godzilla) (20) Delphi 10.3 Rio (Carnival) (4) Delphi 10.4 Sydney (Denali) (1) Delphi 11.0 Alexandria (Olympus) (2) Delphi 2 (34) Delphi 2005 (93) Delphi 2006 (105) Delphi 2007 (161) Delphi 2009 (160) Delphi 2010 (181) Delphi 3 (52) Delphi 4 (53) Delphi 5 (70) Delphi 6 (74) Delphi 7 (90) Delphi 8 (42) Delphi for PHP (7) Delphi x64 (52) Delphi XE (211) Delphi XE2 (249) Delphi XE3 (250) Delphi XE4 (219) Delphi XE5 (194) Delphi XE6 (138) Delphi XE7 (135) Delphi XE8 (111) DUnit (9) F2084 (7) FastMM (26) FastReport (1) FireMonkey (28) OS X FMX (9) GetIt (2) GExperts (11) Indy (6) Kylix (8) kylix_rd (4) Live Bindings (1) ModelMaker Code Explorer (7) Office Automation (7) Package Development (14) Component Development (12) Designer Development (3) QC (53) Spring4D (18) TestInsight (4) Undocumented Delphi (17) WinRT-with-Delphi (2) Design Patterns (42) Dependency Injection (3) DRY – Don’t Repeat Yourself (1) Inversion of Control / IoC (3) OOP (Object Oriented Programming) (1) Developing scalable systems (2) Diagram (18) UML (18) PlantUML (14) Distributed Computing (2) documentation (3) Encoding (168) Ansi (10) ANSI escape code (1) ASCII (25) ASCII95 (1) base64 (9) base64url (1) CP437/OEM 437/PC-8 (6) CP850 (3) Cyberchef (3) DCF77 (1) EBCDIC (6) GB 18030 (1) HEX encoding (3) ISO-8859 (25) ISO8859 (18) MIME (4) Mojibake (18) Shift JIS (4) UCS-2 (2) Unicode (93) codepoints.net (1) ftfy (6) URL Encoding (6) UTF-16 (11) UTF16 (8) UTF-32 (2) UTF32 (2) UTF-8 (54) UTF8 (42) WebP (1) Windows-1252 (12) Fortran (8) Functional Programming (9) Erlang (2) Elixir (1) Geolocation (2) Go (golang) (35) Haskell (3) Installer-Development (8) Inno Setup ISS (4) InnoSetup (3) Install Shield (1) iSeries (3) Issue/Bug tracking (8) How to report bugs (1) JIRA (5) Java Platform (76) Eclipse IDE (1) Java (72) Kotlin (3) Scala (5) Jon Skeet (24) Lazarus (10) Licensing (5) Lightweight markup language (49) MarkDown (37) MediaWiki (3) reStructuredText (19) LISP (11) MQ Message Queueing/Queuing (21) ActiveMQ (1) MQTT (3) Tibco Rendezvous (RV) (1) WebSphere MQ (15) Multi-Threading / Concurrency (17) ObjectiveC (4) Office Development (4) Open Source (12) Paradigms (1) Pascal (112) Apple Pascal (9) Borland Pascal (26) DEC Pascal (5) FreePascal (23) IBM Pascal (2) Object Pascal (10) Omni Pascal (1) Oxygene (4) Quick Pascal (2) Smart Mobile Studio (1) Standard Pascal (6) Think Pascal (3) Turbo Pascal (64) UCSD Pascal (12) With statement (6) PL/I (a.k.a. PL/1) (1) Polyglot (5) Profiling (2) Turbo Profiler (1) Profiling-Performance-Measurement (8) Quality Assurance (1) R (statistics/graphics) (2) RegEx (36) RPG (2) Ruby (29) Rust (11) Scripting (920) ash/dash development (27) Automator scripts (1) Awk (10) bash (146) Batch-Files (166) gapps Google Apps Script (1) Hedy (2) JavaScript/ECMAScript (263) Angular 2 (1) CoffeeScript (2) jQuery (13) JSFiddle (9) JSON (27) jo (2) jq (5) JSONPath (2) Node.js (17) Heroku (1) npm (2) Puppeteer (1) ReactJS (1) Vue.js (4) JScript (1) Makefile (6) Office VBA (7) Perl (25) PHP (38) PowerShell (133) Python (149) Pandas (2) venv (1) Registry Files (6) RouterOS (29) sed script (12) sh (5) Sh Shell (8) TCL (1) TypeScript (19) VBScript (7) Smalltalk (2) SOAP/WebServices (31) Software Archeology (2) Static Code Analysis (5) SonarQube (2) StUF (3) Swift (4) Turbo Prolog (4) UI Design (14) Un4seen BASS Audio Library (3) BASS.NET (3) VBS (7) Versioning (10) Visual J++ (1) vscode Visual Studio Code (42) Web Development (393) CSS (61) Fiddler (17) HTML (132) HTML5 (55) htmx (1) SharePoint (4) SVG (3) WebAssembly (2) WordPress (39) Classic editor (8) Gutenberg editor (9) Windows Development (152) COM/DCOM/COM+ (3) Resource Files and Scripts (.res/.rc) (5) The Old New Thing (38) xCode/Mac/iPad/iPhone/iOS/cocoa (28) Source Code Management (339) BitBucket (17) CVS (4) Dimensions CM by Serena (2) DVCS – Distributed Version Control (252) git (206) git-fork (1) gitea (1) GitKraven (1) Mercurial/Hg (36) SourceTree (22) GitHub (77) gist (19) githack.com (1) GitHub Actions (1) rawgit (5) GitLab (25) MKS Integrity (1) PlasticSCM (20) SourceForge (5) StarTeam (3) Subversion/SVN (40) CollabNet (2) TFS (Team Foundation System) (46) CodePlex (9) Systems Architecture (22) Technical Debt (19) Testing (30) Katalon (2) TDD (2) Usability (36) User Experience (ux) (67) Dark Pattern (7) Vista (2) XML/XSD (82) XML (59) XML escapes (5) ” quot (2) & amp (2) > gt (2) < lt (2) ‘ apos (2) nbsp (1) XPath (9) XSD (38) XSLT (6) XP-embedded (7) Event (426) Briefing (1) Conferences (419) !!con (bangbangcon) (1) BASTA! (6) BorCon (1) CodeRage (4) Conference Topics (370) Delphi Summit (1) Delphi-Tage.de (3) DelphiLive (4) DevDays09 (3) EKON (19) ITDevCon (4) Remoticon (1) WHY2025 (2) PowerDay (3) Seminar (1) Truckrun (3) Fun (233) Apri1st (11) ASCII art / AsciiArt (10) Cartoon (1) Meme (8) Prank (5) Quotes (62) T-Shirt quotes (35) xkcd (2) Future (2) Geeky (26) Emoticons (3) History (372) 6502 (56) Apple I (6) BBC Micro B (3) Commodore (6) C64 (5) VIC-20 (3) 68k (13) NeXT (1) Tesseract (2) 8086 (6) 8088 (4) 8087 (2) IBM PC Model 5150 (1) BBS (14) FidoNet (11) BitSavers.org (18) borland (4) Compuserve (2) dial-up modems (4) IBM SAA CUA (7) Infocom and Z-machine (1) PDP-11 (2) PowerPC (3) Z80 (7) CP/M (4) Infrastructure (156) Cloud (103) Akamai (1) Amazon.com/.de/.fr/.uk/… (19) Amazon SES (3) AWS Amazon Web Services (9) Azure Cloud (8) CDN (Content Delivery Network) (5) Cloudflare (14) Containers (28) Docker (26) Kubernetes (k8n) (18) GCP Google Cloud Platform (7) Google Kubernetes Engine (1) Microsoft Live (1) Netflix (1) pCloud (1) Scaleway (1) Configuration Management (5) Vagrant (1) Veewee (1) YAML (2) DevOps (37) Firewall (13) Endian (1) HugOps (1) IaC – Infrastructure as Code (1) Puppet (1) Opinions (173) Pingback (38) StackExchange (1) Stackoverflow (34) Power User (5,349) *nix (803) *nix-tools (440) ash/dash (32) bash (86) cron (4) cron/crontab (1) dd (1) diff (2) dig (3) ed (1) exim mail (2) fgrep (3) find (3) firewalld (1) grep (4) gzip (1) head (1) ifconfig (2) iptables (4) joe (3) less (1) logrotate (3) lsof (2) man/manual pages (2) mankier (2) netcat (1) nmap (10) ntpdate (1) pandoc document converter (3) parted (1) patch (1) postfix (20) ps (4) rpm (3) samba SMB/CIFS/NMB (2) scp (1) screen (3) sed (19) sendmail (18) smartmontools/smartctl/smartd (1) sort (2) ssh/sshd (20) tcpdump (3) tee (1) tmux (6) uniq (1) vi/vim (2) Wireshark (10) X11 (3) xargs (8) xxd (1) zsh (1) Apache2 (21) BSD (13) FreeBSD (3) BusyBox (6) cURL (29) Cygwin (14) Endian (10) HAProxy (2) journalctl and journald (3) Linux (332) bind-named (10) Debian (22) Raspbian (14) etckeeper (11) Kali Linux (1) OracleLinux (2) RedHat (9) CentOS (2) OpenShift (2) SuSE Linux (225) openSuSE (186) LEAP (3) Tumbleweed (90) systemd (6) SysVinit (1) Ubuntu (14) MINIX (1) Monitoring (36) BetterUptime (1) hetrixtools (2) Nagios (1) PagerDuty (2) Uptimerobot (13) Zabbix (10) nginx (4) rsync (6) U-Boot (1) vi (3) wget (26) ZFS (9) nas4free (1) 3D printing (16) Adobe (18) Adobe Acrobat (8) Adobe Reader (7) Flash (2) Android Devices (116) Helium (1) OnePlus Five (5) OnePlus Nord 2T 5G (1) OnePlus One (9) OnePlus Six (6) OnePlus Two (7) Vysor (5) WhatsApp for Android (4) Apple (511) //e (37) Apple /// (2) Apple Lisa (4) Apple ][ (37) Classic Macintosh (28) Macintosh SE/30 (15) Home brew / homebrew (22) iPod (9) iPod Nano (1) Mac (277) Apple Silicon (15) ARM Mac (9) iMac (40) M1 Mac (11) MacBook (207) MacBook Retina (161) MacBook-Air (155) MacBook-Pro (168) MacMini (68) Power Mac (2) Power Mac G4 Cube (1) Mac OS X / OS X / MacOS (350) iTunes (6) Mac OS X 10.4 Tiger (72) Mac OS X 10.5 Leopard (86) Mac OS X 10.6 Snow Leopard (97) Mac OS X 10.7 Lion (119) macOS 10.12 Sierra (49) macOS 10.13 High Sierra (21) macOS 13 Ventura (1) macOS 14 Sonoma (4) macOS 15 Sequoia (1) OS X 10.10 Yosemite (75) OS X 10.11 El Capitan (49) OS X 10.8 Mountain Lion (122) OS X 10.9 Mavericks (101) SpotLight (14) Terminal (5) Backup (4) Batteries (9) Li-Ion (8) 18650 (7) Beyond Compare (21) BlacBerry 7 (1) Boot (19) BIOS (17) UEFI (5) Clipboard (4) Compression (12) 7zip (11) xz (1) Cryptocurrency (2) Bitcoin (2) Data Visualisation (2) Delivery services (1) GLS (1) DIY (29) Emulators (5) 86Box (1) DOSBox (2) File-Systems (8) btrfs (7) Font (43) Adobe Source Code Pro (2) Fantasque Sans Mono (1) Hack Font (1) Icon Font (1) JetBrains Mono (1) KIX Font PostNL (2) Lucida Console (8) Programmers Font (9) Times New Roman (1) Gadget (3) Games (5) DOOM (1) Prince of Persia (1) GodMode (1) Google (367) Chrome (122) Chromebook (1) Chromecast (21) GMail (30) Google AI (5) Draw! (1) Quick (1) Google Analytics (2) Google Photos (7) GoogleAccount (4) GoogleAuthenticator (6) GoogleBackupAndSync (3) GoogleBookmarks (3) GoogleCalendar (17) GoogleChat (3) GoogleCloudShell (4) GoogleCode (1) GoogleContacts (4) GoogleDocs (6) GoogleSheets (3) GoogleDrive (22) GoogleDuo (1) GoogleEarth (1) GoogleFlights (2) GoogleGroups (2) GoogleHangouts (12) GoogleHome (2) GoogleMaps (24) Local Guides (7) GoogleNow (1) GooglePay (1) GoogleReader (4) GoogleSearch (38) GoogleImageSearch (3) GoogleStore (1) GoogleTranslate (3) GoogleVoice (6) GoogleWebP (1) Hangouts (3) Nexus 4 (14) Waze (1) YouTubeMusic (1) Google Apps (12) Graphic Design (1) Hardware (693) 19-inch rack (1) ADS-B receivers (3) Appliances (1) Cable TV/Radio (6) CPU (4) Intel CPUs (3) DCF77 (1) Dell Optiplex 3060/5060/7060 Micro (7) DELL-9200 (5) Displays (12) 4K Monitor (7) 5K monitor (1) LG Monitors (1) FireWire (1) HDD (5) Home Audio/Video (17) Bluetooth (2) Harman Kardon (5) BDS277 (1) BDS580 (3) JVC (1) Samsung TV (4) MU6100 (4) HP XW6600 (16) KVM keyboard/video/mouse (131) Keyboards and Keyboard Shortcuts (122) PiKVM / Pi-KVM (5) M.2/NGFF (3) Mainboards (29) gigabyte (1) GA-Z77-DS3H (1) MSI (4) Z77A-G43 (3) SuperMicro (20) IPMI (8) X10SRH-CF (10) X9SRi-3F (7) X9SRi-F (7) Memory (6) ECC memory (3) Network-and-equipment (318) ASUS RT-N66U (9) Domotics/Smarthome (2) ESPHome (1) Home Assistant (1) Homey (1) Ethernet (41) PoE – Power over Ethernet (7) Wake-on-LAN (WoL) (9) Fonera FON2100A (2) Fritz! (53) Fritz!Box (51) fritzcap (4) Fritz!WLAN (6) FritzOS/Fritz!OS (2) GL.iNet (9) GL-AR300M (6) GL.iNET GL-SFT1200 (7) IoT Internet of Things (47) LoRa – Long Range wireless communications network (5) Matter (1) Ring Doorbell/Chime (Amazon) (7) Z-Wave (1) Zigbee (1) QoS (1) routers (114) APU (4) Juniper (1) Olive – JUNOS (1) MikroTik (65) WinBox (20) OpenWRT (1) pfSense (19) Unifi-Ubiquiti (8) Cloud Key (6) USG Ubiquiti Unifi Security Gateway (2) VPN (37) FortiGate/FortiClient (5) IPSec (6) OpenVPN (10) PPTP (5) Wireguard (10) Tailscale (8) PCIe/PCI-e/PCI Express (2) Printers (15) Dymo Label Printers (1) OKI Printers (9) MC342 printer/scanner (2) OKI C332 (9) OKI MC363/MC363DNW (2) Olympus P-400 dye sublimation printer (1) PSU (3) PC PSU (2) SAS/SATA (7) SFF-8087 (2) Scanners (26) Fujitsu ScanSnap (26) ix100 (10) ix1500 (5) ix500 (19) SCSI (4) Single-Board Computers (1) SSD (29) NVMe (5) Trim (4) USB (28) USB-C (17) Hosting (15) HTC (8) HTC Sensation (7) Image Editing (9) The Gimp (3) ImageMagick (3) Internet (350) Access Points (1) Buffalo (1) ADSL (6) archive.is / archive.today (21) Archive Today controversy (2) Archiving (7) mementoweb (1) Webcitation (1) Captive Portal (5) Cloud Apps (21) Amazon S3 (4) draw.io (5) DNS (52) fiber (8) Ghostarchive (1) InternetArchive (60) ArchiveTeamWarrior (10) WayBack machine (54) IPv4 (4) IPv6 (3) ISP (26) FreedomInternet (2) KPN (10) Odido (ex Dutch T-Mobile) (2) Tele2 (1) xs4all (15) Ziggo/UPC/A2000 (8) SearchEngines (3) Bing (1) DuckDuckGo (1) SearX (1) Seeks (1) Software Heritage (1) SpeedTest (15) OpenSpeedTest (1) TomatoUSB (11) WWW – the World Wide Web of information (18) link rot (16) iOS (45) Apple TV (6) iPad (30) iPhone (25) iPod touch (16) ISO 8601 (13) Liander (4) LifeHacker (1,107) Alzheimer’s disease (1) Banking (3) Care/Zorg (2) cars (33) E46 320i touring (8) E46 330xd touring BMW (4) E61 530xd touring (8) R171 SLK Mercedes (3) W116 (5) Cooking (4) ElectricPower (5) Finance (3) GTD – Getting Things Done (1) Health (55) Covid-19 / Coronavirus (9) Covid-19/SARS-CoV-2/Coronavirus (4) Hearing impairment/deafness (1) Hospital (2) LUMC (2) Vaccinations (4) IKEA hacks (14) Knowledge Worker (3) Learning/Teaching (11) Interactive Tutorials (2) LEGO (1) Music (21) Musescore (1) Natural Languages (4) OSINT – Open Source Intelligence (3) PokemonGo (4) Politics (2) science (43) Chemistry (1) Color (science) (2) Mathematics (9) Physics (2) Solar Power (22) Zeversolar (1) Zeverlution (1) Toys/playing (1) Traffic (3) LinkedIn (4) Media (39) Audio (27) Audacity (10) Normalisation of audio (2) Reaper (1) ffmpeg (10) Video (10) Media Streaming (18) DLNA / UPnP (1) Google Play Music (2) IceCast (2) Spotify (2) MS-DOS (14) TSR Terminate and Stay Resitent (2) Navigation (1) TomTom (1) OCR (4) Tesseract (2) Office (136) Communicator (2) Excel (71) Microsoft Document Imaging (1) Office 2000 (5) Office 2003 (15) Office 2007 (28) Office 2010 (34) Office 2011 for Mac (21) Office 2013 (37) Office 2016 (13) Office 2021 (3) Office 95 (1) Outlook (12) Power Point (10) Visio (2) Word (25) PDF (24) Photography (14) Nikon (11) Nikon DX VR 18-200 mm F3.5-5.6G Zoom (1) Privacy (27) GDPR/DS-GVO/AVG (14) Proton AG (1) RAID (12) LSI/3ware (6) Retrocomputing (28) 8080 (1) OS/2 (1) RSI (5) Screen sharing (7) TeamViewer (1) VNC/Virtual_Network_Computing (6) X11vnc (1) Security (357) Access Control (1) Antivirus (3) Authentication (28) 2FA/MFA (14) Authy (8) TOTP (Timebase One Time Pads) (1) DigiD (2) OAuth (1) Blue team (16) CSP (1) Cyber (4) Encryption (79) HTTPS/TLS security (31) Let’s Encrypt (letsencrypt/certbot) (26) Hashing (31) HMAC (2) md5 (8) SHA (6) SHA-1 (3) SHA-256 (3) SHA-512 (3) https (36) Infosec (Information Security) (12) Keybase (2) LDAP (1) OpenSSL (36) Passwords/manages (1) Pen Testing (10) Phishing (2) Public Key Cryptography (7) PKI (4) Ransomware (1) Red team (26) Rubber Ducky (1) Signing (3) testssl.sh (4) U2F FIDO Security Keys (5) Skype (7) SPAM (4) Storage (5) Flash-memory (2) SD/miniSD/microSD/MMC (2) Perkeep (1) Telephony (18) Cellular telephony (4) GSM (2) DECT (4) Gigaset (3) ISDN (9) PSTN (10) VoIP (7) Text Editors (20) atom editor (15) Notepad++ (5) ThinkPad (34) T510 (7) UltraNav keyboards (11) W701 (10) X201 (4) Typesetting (2) LaTeX (2) Typography (8) UPS (12) APC Smart-UPS (7) apcupsd (3) CyberPower (3) CP1500EPFCLCD (2) UTC (2) Virtual Assistant (1) Virtualization (308) DOSBox emulator (1) Hyper-V (15) KVM Kernel-based Virtual Machine (7) Proxmox (15) Qemu (2) UTM (1) VirtualBox (10) VMware (283) Fusion (35) View (8) VMware Converter (9) VMware ESXi (234) ESXi4 (52) Veeam (3) ESXi5 (72) ESXi5.1 (74) ESXi5.5 (67) ESXi6 (103) ESXi6.5 (116) ESXi6.7 (81) ESXi7 (48) ESXi8 (1) PowerCLI (8) VMware Player (1) VMware Server (GSX) (1) VMware Workstation (22) Xen (1) Web Browsers (192) Bookmarklet (75) Chrome (88) Chromium (4) Edge (8) Firefox (57) Internet Explorer (23) Opera (16) Opera Mobile (3) Safari (18) User-Agent (2) Web conferencing (1) WiFi (45) Captive-WiFi-Portal (1) Ubiquiti (9) WDS (1) Windows (866) CertUtil (5) Chocolatey (49) Boxstarter (1) ConPTY (3) Console (command prompt window) (24) Everything by VoidTools (11) FAT (8-bitFAT, FAT12, FAT16, FAT16B, FAT32) (1) Microsoft Security Essentials (1) Microsoft Store (4) NirSoft (5) NTFS (8) NTLM (11) NuGet (1) PowerToys (6) Printer drivers (8) HP Printer Drivers (6) Remote Desktop Protocol/MSTSC/Terminal Services (33) RoboCopy (4) Rufus (1) Scoop (12) SysInternals (12) procexp Process Explorer (1) sdelete (2) SysMon (1) Windows 10 (225) Windows 11 (68) Windows 3.11 (4) Windows 7 (310) Microsoft Surface on Windows 7 (23) Windows 8 (254) Windows 8.1 (162) Windows 9 (48) Windows 95 (6) Windows 98 (4) Windows Defender (2) Windows Explorer / Windows Shell (2) Windows ME (3) Windows NT (10) Windows Server 2000 (78) Windows Server 2003 (112) Windows Server 2003 R2 (104) Windows Server 2008 (146) Windows Server 2008 R2 (140) Windows Server 2012 (57) Windows Server 2012 R2 (58) Windows Server 2016 (33) Windows Server 2019 (4) Windows Server 2022 (4) Windows Terminal (5) Windows Vista (174) Windows XP (183) Windows-Http-Proxy (14) Cntlm (10) winget (13) WinSCP (2) WSL Windows Subsystem for Linux (6) Reference (2) Schiphol (5) SocialMedia (352) Blogging (20) BlueSky (8) Channel9 (1) Chat (15) BITNET Relay (5) Discord (3) IRC (7) Telegram (2) Copy.com (6) DropBox (13) eMail (11) Facebook (19) Fediverse (3) Feedly (3) Flickr (4) G+: GooglePlus (46) gmane (2) Instagram (5) LinkedIn (5) Mastodon (16) Pluspora (1) Reddit (2) RSS (9) Signal messenger (2) Substack (1) Twitter (83) TwitterBot (4) WhatsApp (8) wikipedia (1) WordPress (84) Missed Schedule (27) YouTube (26) youtube-dl (3) Uncategorized (245) __Unfinished (1)
Email Subscription
Enter your email address to subscribe to this blog and receive notifications of new posts by email.
Email Address:
Sign me up!
Join 1,839 other subscribers
« KotlinConf’23 video streams (including the keynote by Kevlin Henney which is generic to any programming language or concept)
Stack Overflow’s forum is dead thanks to AI, but the company’s still kicking… thanks to AI – Sherwood News (and a few links on SEDE – Stack Exchange Data Explorer) Posted by jpluimers on 2026/05/26
Interesting article: [Wayback/Archive] Stack Overflow’s forum is dead thanks to AI, but the company’s still kicking… thanks to AI – Sherwood News. with this important quote: The complex questions still get asked on Stack because there’s no other place. If the LLMs are only as good as the data, which is typically human curated, we’re one of the best places for that, if not the best for technology. I wonder about how far it has declined now, and also think these are reasons for the decline as well:
a lot of fundamental questions for each topic have already been asked few new programming languages gained popularity over the last decade (I think golang was the last major one) discussions on GitHub and to a lesser extent GitLab have taken over a lot of traffic toxic behaviours on mainly the Stack overflow and meta site I mentioned in The toxic reactions to “What would be good alternatives to Stack Overflow for questions about software solutions to drive hardware? – Meta Stack Overflow”
Anyway, the graph in that post is just a sexy version of a query you can create yourself on the SEDE (Stack Exchange Data Explorer). That’s why I included both below.
Graph: Stack Overflow’s Forum’s Decline Started Years Ago, But Al Killed The Platform For Good; Horizontal data: year; Vertical data: Number Of Questions Asked [Monthly, including deleted questions]; Rise from 2008-24, peak during Covid-19 in 2021/2022, decline from 2024 when ChatGPT got launched If you are like me, you also want other measures, like seeing answers and comments: are these also dropping, if so do they drop at the same rate, and what’s the ratio over time of answers over questions, and comments over questions and answers? Generating graphs like these yourself If you want to regenerate a very similar graph, check out the query [Archive] Questions per month including deleted – Stack Exchange Data Explorer
SELECT DATEFROMPARTS(YEAR(CreationDate), MONTH(CreationDate), 1) AS [Month], COUNT(*) AS [Questions] FROM PostsWithDeleted WHERE PostTypeId = 1 GROUP BY DATEFROMPARTS(YEAR(CreationDate), MONTH(CreationDate), 1) ORDER BY [Month] ASC
That was my starting point after a quick search, and the base of all my queries below. The above query resulted in this graph: [Archive] Questions per month including deleted – Stack Exchange Data Explorer (graph)
[Wayback/Archive] 536362203-4db75341-a0c7-4b64-a6ec-e67f80575005.png (1003×535) Answers per month including deleted The is a similar graph as the above one, but now showing answers instead of questions derived from the above Questions query: Answers per month including deleted – Stack Exchange Data Explorer:
[Wayback/Archive] 537280204-e8929110-74f7-4fd5-a327-aaf32d270914.png (983×566) The query is different in just two places: the count(*) alias and the PostTypeId value.
SELECT DATEFROMPARTS(YEAR(CreationDate), MONTH(CreationDate), 1) AS [Month], COUNT(*) AS [Answers] FROM PostsWithDeleted WHERE PostTypeId = 2 GROUP BY DATEFROMPARTS(YEAR(CreationDate), MONTH(CreationDate), 1) ORDER BY [Month] ASC
That opened a quest to get this graph: Combined graph adding all post types What I needed for this is aggregate the various post types (question, answer) and group by month. This is a tad more complex than Count(*) where PostTypeId=# queries above. So I did some digging, where the results… were NOT from the Stack Exchange network (: I started looking for transaction types and months because I know that is a common scenario in databases. Google Search returned relevant results, but Duck Duck Go didn’t.
[WaybackFailed/ArchiveSave] (Cannot be archived) sql count transaction types group by month – Google Search [Wayback/Archive] sql count transaction types group by month at DuckDuckGo had no good results [Wayback/Archive] sql query to generate counts by month (no more recent Wayback Machine archivals because of #ThisIsWhyWeCantHaveNiceThings with JavaScript and URL rewrites) You can do some things with “GROUPING” (not included below) to make the subtotals and totals more apparent but, considering you posted no schema nor data, this should get you started once you make the appropriate substitutions for table and column names as required… SELECT d.Company, d.[Year], SUM(CASE WHEN [Month] = 01 THEN Transactions ELSE 0 END) AS Jan, SUM(CASE WHEN [Month] = 02 THEN Transactions ELSE 0 END) AS Feb, SUM(CASE WHEN [Month] = 03 THEN Transactions ELSE 0 END) AS Mar, SUM(CASE WHEN [Month] = 04 THEN Transactions ELSE 0 END) AS Apr, SUM(CASE WHEN [Month] = 05 THEN Transactions ELSE 0 END) AS May, SUM(CASE WHEN [Month] = 06 THEN Transactions ELSE 0 END) AS Jun, SUM(CASE WHEN [Month] = 07 THEN Transactions ELSE 0 END) AS Jul, SUM(CASE WHEN [Month] = 08 THEN Transactions ELSE 0 END) AS Aug, SUM(CASE WHEN [Month] = 09 THEN Transactions ELSE 0 END) AS Sep, SUM(CASE WHEN [Month] = 10 THEN Transactions ELSE 0 END) AS Oct, SUM(CASE WHEN [Month] = 11 THEN Transactions ELSE 0 END) AS Nov, SUM(CASE WHEN [Month] = 12 THEN Transactions ELSE 0 END) AS [Dec], SUM(Transactions) AS Total, SUM(Transactions)/24 AS Average FROM (--Derived table "d" finds count for year and month SELECT Company, [Year] = DATEPART(yy,TransactionDate), [Month] = DATEPART(mm,TransactionDate) Transactions = COUNT(*) FROM yourtable GROUP BY Company, DATEPART(yy,TransactionDate), DATEPART(mm,TransactionDate) ) d GROUP BY d.Company, d.[Year] WITH ROLLUP ORDER BY d.Company, d.[Year] …and, in a properly indexed environment, will process millions of rows in scant seconds (ie. 4 million rows in about 5-7 seconds). –Jeff Moden
[Wayback/Archive] How to Summarize Monthly Transactions by Country in SQL | Step-by-Step Guide | by Data Science Wallah | Medium
In this tutorial, we will solve the SQL problem “Monthly Transactions I” from LeetCode. This problem will test your skills in grouping data by date and country, as well as filtering and aggregating transaction data based on specific conditions. This is an excellent problem for practicing SQL aggregation functions like COUNT(), SUM(), and GROUP BY.
…
Here’s the complete SQL query to solve the problem: SELECT DATE_FORMAT(trans_date, '%Y-%m') AS month, country, COUNT(*) AS trans_count, SUM(CASE WHEN state = 'approved' THEN 1 ELSE 0 END) AS approved_count, SUM(amount) AS trans_total_amount, SUM(CASE WHEN state = 'approved' THEN amount ELSE 0 END) AS approved_total_amount FROM Transactions GROUP BY DATE_FORMAT(trans_date, '%Y-%m'), country;
The tricks used/knowledge needed:
Combine SUM and CASE WHEN to count relevant values as there is nou COUNT(WHEN …) GROUP BY cannot use aliases from the SELECT portion
So in order to get the counts for the various PostTypes, we need to add a column that counts for each PostTypes value. The PostTypes are these (thanks [Wayback/Archive] Show all types – Stack Exchange Data Explorer, see more about it further below):
Id PostType ---- ------------------- 1 Question 2 Answer 3 Wiki 4 TagWikiExcerpt 5 TagWiki 6 ModeratorNomination 7 WikiPlaceholder 8 PrivilegeWiki
That resulted in this query: Questions, answers and other post types per month including deleted – Stack Exchange Data Explorer (3 seconds)
SELECT DATEFROMPARTS(YEAR(CreationDate), MONTH(CreationDate), 1) AS [Month], SUM(CASE WHEN PostTypeId = 1 THEN 1 ELSE 0 END) AS [Questions], SUM(CASE WHEN PostTypeId = 2 THEN 1 ELSE 0 END) AS [Answers], SUM(CASE WHEN PostTypeId = 3 THEN 1 ELSE 0 END) AS [Wikis], SUM(CASE WHEN PostTypeId = 4 THEN 1 ELSE 0 END) AS [TagWikiExcerpts], SUM(CASE WHEN PostTypeId = 5 THEN 1 ELSE 0 END) AS [TagWikis], SUM(CASE WHEN PostTypeId = 6 THEN 1 ELSE 0 END) AS [ModeratorNominations], SUM(CASE WHEN PostTypeId = 7 THEN 1 ELSE 0 END) AS [WikiPlaceholders], SUM(CASE WHEN PostTypeId = 8 THEN 1 ELSE 0 END) AS [PrivilegeWikis], COUNT(*) AS [AllPostTypes] FROM PostsWithDeleted GROUP BY DATEFROMPARTS(YEAR(CreationDate), MONTH(CreationDate), 1) ORDER BY [Month] ASC
with this graph:
Questions, Answers, Wikis TagWikiExcerpts, TagWikis, ModerationNominations, WikiPlaceholders, PrivilegeWikis, AllPostTypes including deleted ones per month [Wayback/Archive] 539268768-c1955f6e-70b2-4025-8a2b-02534b08f720.png (979×525) This also gives a rough view of answers per question: until roughly 2018, that was above 1, and from 2020 on it got below 1. Comments by month graph In created this to try creating a second “combined” graph below. The query is this: Comments count by Month – Stack Exchange Data Explorer
SELECT DATEFROMPARTS(YEAR(Comments.CreationDate), MONTH(Comments.CreationDate), 1) AS [Month], COUNT(Id) AS CommentIdCount FROM Comments GROUP BY DATEFROMPARTS(YEAR(Comments.CreationDate), MONTH(Comments.CreationDate), 1) ORDER BY [Month] ASC
and the graph:
CommentIdCount by month [Wayback/Archive] 537654387-b7af32a9-68ef-4b06-be89-a36dc620f105.png (979×523) Combined graph adding comments to all post types The above question/answer ratio estimate got me thinking: what about comments and the ratio to posts – how did these evolve over time? The last query above took about 3 seconds. The final one about 7 seconds as it needs two more queries, as you can see in Comments for questions, answers and other posts per month including deleted – Stack Exchange Data Explorer:
WITH PostCommentCounts AS ( SELECT COUNT(Id) AS CommentIdCount, PostId FROM Comments GROUP BY PostId )
SELECT DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1) AS [Month], SUM(CASE WHEN PostTypeId = 1 THEN 1 ELSE 0 END) AS [Questions], SUM(CASE WHEN PostTypeId = 2 THEN 1 ELSE 0 END) AS [Answers], SUM(CASE WHEN PostTypeId = 3 THEN 1 ELSE 0 END) AS [Wikis], SUM(CASE WHEN PostTypeId = 4 THEN 1 ELSE 0 END) AS [TagWikiExcerpts], SUM(CASE WHEN PostTypeId = 5 THEN 1 ELSE 0 END) AS [TagWikis], SUM(CASE WHEN PostTypeId = 6 THEN 1 ELSE 0 END) AS [ModeratorNominations], SUM(CASE WHEN PostTypeId = 7 THEN 1 ELSE 0 END) AS [WikiPlaceholders], SUM(CASE WHEN PostTypeId = 8 THEN 1 ELSE 0 END) AS [PrivilegeWikis], SUM(PostCommentCounts.CommentIdCount) AS [Comments], COUNT(PostsWithDeleted.Id) AS [AllPostTypes] FROM PostsWithDeleted LEFT JOIN PostCommentCounts ON PostCommentCounts.PostId = PostsWithDeleted.Id
GROUP BY DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1) ORDER BY [Month] ASC
with this graph:
Comments for the Questions, Answers, Wikis TagWikiExcerpts, TagWikis, ModerationNominations, WikiPlaceholders, PrivilegeWikis, AllPostTypes including deleted ones per month (correlated by post) [Wayback/Archive] 537322714-a43a36be-4a30-421a-8235-74d7d865a0cb.png (978×523) I wasn’t really sure what the best way was to add the count of comments (which are in a different table) into the results. The above query correlates them on PostId. This could also be done by [Month]. Since they are correlated, part of the aggregation needs to be done in a separate query. Initially I thought this could be done with an inner select (officially called subquery), but didn’t get that to work quickly enough. So I opted for using a WITH (officially called common table expressions or CTE). Since I hadn’t used SQL regularly for quite a while, I used these to get me going:
[WaybackFail] sql sum inner select group by – Google Search [Wayback/Archive] sql sum inner select join group by at DuckDuckGo which gave me this part of the above solution: [Wayback/Archive] select – Trying to use INNER JOIN and GROUP BY SQL with SUM Function, Not Working – Stack Overflow (thanks [Wayback/Archive] Rob4236 and [Wayback/Archive] rory.ap)
Q RES_DATA Contains my Customer as below CUSTOMER ID | NAME
1, Robert 2, John 3, Peter
INV_DATA Contains their INVOICES as Below INVOICE ID | CUSTOMER ID | AMOUNT
100, 1, £49.95 200, 1, £105.95 300, 2, £400.00 400, 3, £150.00 500, 1, £25.00
I am Trying to write a SELECT STATEMENT Which will give me the results as Below. CUSTOMER ID | NAME | TOTAL AMOUNT
1, Robert, £180.90 2, John, £400.00 3, Peter, £150.00 A SELECT a.[CUSTOMER ID], a.[NAME], SUM(b.[AMOUNT]) AS [TOTAL AMOUNT] FROM RES_DATA a INNER JOIN INV_DATA b ON a.[CUSTOMER ID]=b.[CUSTOMER ID] GROUP BY a.[CUSTOMER ID], a.[NAME]
I tested it with SQL Fiddle against SQL Server 2008: http://sqlfiddle.com/#!3/1cad5/1
[Wayback/Archive] FREE AI-Enhanced Online SQL Server Compiler – For learning & practice
[Wayback/Archive] sql sum CTE join group by at DuckDuckGo [Wayback/Archive] sql – Using GROUP BY Inside a CTE for Aggregation – Stack Overflow (thanks [Wayback/Archive] leilanihagen and [Wayback/Archive] sacse) which confirmed a CTE solution works:
WITH SumPerOrder (SalesOrderID, CalculatedSubTotalFromDetail) AS ( SELECT SalesOrderID ,SUM(LineTotal) FROM AdventureWorks2014.Sales.SalesOrderDetail GROUP BY SalesOrderID ) SELECT soh.SalesOrderID ,soh.SalesOrderNumber ,soh.SubTotal AS OriginalSubTotal ,spo.CalculatedSubTotalFromDetail ,(soh.SubTotal - spo.CalculatedSubTotalFromDetail) AS Difference FROM AdventureWorks2014.Sales.SalesOrderHeader soh INNER JOIN SumPerOrder spo ON soh.SalesOrderID = spo.SalesOrderID
[Wayback/Archive] Sum colums in one table and join with another table : SQL was referenced from the first query and shows the same solution as the prior link:
WITH sums AS ( SELECT consignmentid , SUM(quantity) AS sum_qty FROM consignmentitemstbl GROUP BY consignmentid ) SELECT c.consignmentid , c.[total volume] , c.[total weight] , COALESCE(sums.sum_qty,0) AS [total quantity] FROM consignmentstbl AS c LEFT OUTER JOIN sums ON sums.consignmentid = c.consignmentid
Combined graph adding comments to all post types This took me a few tries as the first try failed with “Line 25: Invalid column name 'Month'.“:
WITH PostCommentCounts AS ( SELECT DATEFROMPARTS(YEAR(Comments.CreationDate), MONTH(Comments.CreationDate), 1) AS [Month], COUNT(Id) AS CommentIdCount FROM Comments GROUP BY DATEFROMPARTS(YEAR(Comments.CreationDate), MONTH(Comments.CreationDate), 1) )
SELECT DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1) AS [Month], SUM(CASE WHEN PostTypeId = 1 THEN 1 ELSE 0 END) AS [Questions], SUM(CASE WHEN PostTypeId = 2 THEN 1 ELSE 0 END) AS [Answers], SUM(CASE WHEN PostTypeId = 3 THEN 1 ELSE 0 END) AS [Wikis], SUM(CASE WHEN PostTypeId = 4 THEN 1 ELSE 0 END) AS [TagWikiExcerpts], SUM(CASE WHEN PostTypeId = 5 THEN 1 ELSE 0 END) AS [TagWikis], SUM(CASE WHEN PostTypeId = 6 THEN 1 ELSE 0 END) AS [ModeratorNominations], SUM(CASE WHEN PostTypeId = 7 THEN 1 ELSE 0 END) AS [WikiPlaceholders], SUM(CASE WHEN PostTypeId = 8 THEN 1 ELSE 0 END) AS [PrivilegeWikis], SUM(PostCommentCounts.CommentIdCount) AS [Comments], COUNT(PostsWithDeleted.Id) AS [AllPostTypes] FROM PostsWithDeleted LEFT JOIN PostCommentCounts ON PostCommentCounts.[Month] = PostsWithDeleted.[Month]
GROUP BY DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1) ORDER BY [Month] ASC
That happened to be the PostsWithDeleted.[Month] bit. A new try failed as well, but with a “Line 1: Arithmetic overflow error converting expression to data type int.“:
WITH PostCommentCounts AS ( SELECT DATEFROMPARTS(YEAR(Comments.CreationDate), MONTH(Comments.CreationDate), 1) AS [Month], COUNT(Id) AS CommentIdCount FROM Comments GROUP BY DATEFROMPARTS(YEAR(Comments.CreationDate), MONTH(Comments.CreationDate), 1) )
SELECT DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1) AS [Month], SUM(CASE WHEN PostTypeId = 1 THEN 1 ELSE 0 END) AS [Questions], SUM(CASE WHEN PostTypeId = 2 THEN 1 ELSE 0 END) AS [Answers], SUM(CASE WHEN PostTypeId = 3 THEN 1 ELSE 0 END) AS [Wikis], SUM(CASE WHEN PostTypeId = 4 THEN 1 ELSE 0 END) AS [TagWikiExcerpts], SUM(CASE WHEN PostTypeId = 5 THEN 1 ELSE 0 END) AS [TagWikis], SUM(CASE WHEN PostTypeId = 6 THEN 1 ELSE 0 END) AS [ModeratorNominations], SUM(CASE WHEN PostTypeId = 7 THEN 1 ELSE 0 END) AS [WikiPlaceholders], SUM(CASE WHEN PostTypeId = 8 THEN 1 ELSE 0 END) AS [PrivilegeWikis], SUM(PostCommentCounts.CommentIdCount) AS [Comments], COUNT(PostsWithDeleted.Id) AS [AllPostTypes] FROM PostsWithDeleted LEFT JOIN PostCommentCounts ON PostCommentCounts.[Month] = DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1)
GROUP BY DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1) ORDER BY [Month] ASC
That I could not pinpoint when reading the error message (as it indicated “Line 1”), but my gut feeling was either of these:
the query inside PostCommentCounts CTE at the start with the most likely place the DATEFROMPARTS the SUM at “Line 12” which was confirmed by a quick search where I learned COUNT_BIG exists, but SUM_BIG does not. Thinking about that twice that made sense: COUNT_BIG is about counting so there cannot be a cast inside the COUNT expression, but SUM is about summing the inside of the expression and that’s where a CAST needs to take place.
The learning:
[Wayback/Archive] Line 1: Arithmetic overflow error converting expression to data type int. at DuckDuckGo [Wayback/Archive] SQL Server : Arithmetic overflow error converting expression to data type int – Stack Overflow (thanks [Wayback/Archive] user2270544 – Stack Overflow , [Wayback/Archive] Jeff Johnston and [Wayback/Archive] John G)
A Is the problem with SUM(billableDuration)? To find out, try commenting out that line and see if it works. It could be that the sum is exceeding the maximum int. If so, try replacing it with SUM(CAST(billableDuration AS BIGINT)). A Very simple: Use COUNT_BIG(*) AS NumStreams
[Wayback/Archive] COUNT_BIG at DuckDuckGo [Wayback/Archive] COUNT_BIG (Transact-SQL) – SQL Server | Microsoft Learn [Wayback/Archive] COUNT() vs COUNT_BIG() in SQL Server: What’s the Difference? … The difference is that COUNT() returns its result as an int, whereas COUNT_BIG() returns its result as a bigint. In other words, you’ll need to use COUNT_BIG() if you expect its results to be larger than 2,147,483,647 (i.e. if the query returns more than 2,147,483,647 rows). … We can use the sp_describe_first_result_set stored procedure to check the return data type each of these functions. Check the Data Type for COUNT() EXEC sp_describe_first_result_set N'SELECT COUNT(*) FROM Fact.[Order]', null, 0;
Result (using vertical output): is_hidden | 0 column_ordinal | 1 name | NULL is_nullable | 1 system_type_id | 56 system_type_name | int max_length | 4 precision | 10 scale | 0 … … Check the Data Type for COUNT_BIG() For this example, all we need to do is replace COUNT(*) with COUNT_BIG(*): EXEC sp_describe_first_result_set N'SELECT COUNT_BIG(*) FROM Fact.[Order]', null, 0;
Result (using vertical output): is_hidden | 0 column_ordinal | 1 name | NULL is_nullable | 1 system_type_id | 127 system_type_name | bigint max_length | 8 precision | 19 scale | 0 … … By the way, a quicker way of doing the above is to combine both functions into query when calling the stored procedure. Like this: EXEC sp_describe_first_result_set N'SELECT COUNT(*), COUNT_BIG(*) FROM Fact.[Order]', null, 0;
That taught me about a I think I knew would exist, but not its name: [Wayback/Archive] sp_describe_first_result_set at DuckDuckGo [Wayback/Archive] sp_describe_first_result_set (Transact-SQL) – SQL Server | Microsoft Learn Returns the metadata for the first possible result set of the Transact-SQL batch. Returns an empty result set if the batch returns no results. Raises an error if the Database Engine can’t determine the metadata for the first query that will be executed by performing a static analysis.
So I tried casting which failed with a much more specific location – “Line 3: Explicit conversion from data type date to bigint is not allowed.” indicating modifying the CTE wasn’t the solution:
WITH PostCommentCounts AS ( SELECT CAST(DATEFROMPARTS(YEAR(Comments.CreationDate), MONTH(Comments.CreationDate), 1) AS BIGINT) AS [MonthBIGINT], COUNT(Id) AS CommentIdCount FROM Comments GROUP BY DATEFROMPARTS(YEAR(Comments.CreationDate), MONTH(Comments.CreationDate), 1) )
SELECT DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1) AS [Month], SUM(CASE WHEN PostTypeId = 1 THEN 1 ELSE 0 END) AS [Questions], SUM(CASE WHEN PostTypeId = 2 THEN 1 ELSE 0 END) AS [Answers], SUM(CASE WHEN PostTypeId = 3 THEN 1 ELSE 0 END) AS [Wikis], SUM(CASE WHEN PostTypeId = 4 THEN 1 ELSE 0 END) AS [TagWikiExcerpts], SUM(CASE WHEN PostTypeId = 5 THEN 1 ELSE 0 END) AS [TagWikis], SUM(CASE WHEN PostTypeId = 6 THEN 1 ELSE 0 END) AS [ModeratorNominations], SUM(CASE WHEN PostTypeId = 7 THEN 1 ELSE 0 END) AS [WikiPlaceholders], SUM(CASE WHEN PostTypeId = 8 THEN 1 ELSE 0 END) AS [PrivilegeWikis], SUM(PostCommentCounts.CommentIdCount) AS [Comments], COUNT(PostsWithDeleted.Id) AS [AllPostTypes] FROM PostsWithDeleted LEFT JOIN PostCommentCounts ON PostCommentCounts.[MonthBIGINT] = CAST(DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1) AS BIGINT)
GROUP BY DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1) ORDER BY [Month] ASC
to split the grouping into [Year] and [Month] portions, then and cast the SUM parameter to use BIGINT:
WITH PostCommentCounts AS ( SELECT YEAR(Comments.CreationDate) AS [Year], MONTH(Comments.CreationDate) AS [Month], COUNT(Id) AS CommentIdCount FROM Comments GROUP BY YEAR(Comments.CreationDate), MONTH(Comments.CreationDate) )
SELECT DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1) AS [Month], SUM(CASE WHEN PostTypeId = 1 THEN 1 ELSE 0 END) AS [Questions], SUM(CASE WHEN PostTypeId = 2 THEN 1 ELSE 0 END) AS [Answers], SUM(CASE WHEN PostTypeId = 3 THEN 1 ELSE 0 END) AS [Wikis], SUM(CASE WHEN PostTypeId = 4 THEN 1 ELSE 0 END) AS [TagWikiExcerpts], SUM(CASE WHEN PostTypeId = 5 THEN 1 ELSE 0 END) AS [TagWikis], SUM(CASE WHEN PostTypeId = 6 THEN 1 ELSE 0 END) AS [ModeratorNominations], SUM(CASE WHEN PostTypeId = 7 THEN 1 ELSE 0 END) AS [WikiPlaceholders], SUM(CASE WHEN PostTypeId = 8 THEN 1 ELSE 0 END) AS [PrivilegeWikis], SUM(CAST(PostCommentCounts.CommentIdCount AS BIGINT)) AS [Comments], COUNT(PostsWithDeleted.Id) AS [AllPostTypes] FROM PostsWithDeleted LEFT JOIN PostCommentCounts ON PostCommentCounts.[Year] = YEAR(PostsWithDeleted.CreationDate) AND PostCommentCounts.[Month] = MONTH(PostsWithDeleted.CreationDate)
GROUP BY DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1) ORDER BY [Month] ASC
The resulting graph (and to a lesser extend the 7 second query duration) then made me slap my head: I should have used INNER JOIN instead of LEFT JOIN,which is short for LEFT OUTER JOIN, explaining the explosion of the count of Comments:
Explosion of Comments values (not rows) because of the LEFT JOIN [Wayback/Archive] 537711393-9eeb1895-2536-434c-9274-ff0ea6245ce9.png (979×523) This meant I could try to go back to the first query, the one resulting in “Line 1: Arithmetic overflow error converting expression to data type int.“, and replace the LEFT JOIN with INNER JOIN:
WITH PostCommentCounts AS ( SELECT DATEFROMPARTS(YEAR(Comments.CreationDate), MONTH(Comments.CreationDate), 1) AS [Month], COUNT(Id) AS CommentIdCount FROM Comments GROUP BY DATEFROMPARTS(YEAR(Comments.CreationDate), MONTH(Comments.CreationDate), 1) )
SELECT DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1) AS [Month], SUM(CASE WHEN PostTypeId = 1 THEN 1 ELSE 0 END) AS [Questions], SUM(CASE WHEN PostTypeId = 2 THEN 1 ELSE 0 END) AS [Answers], SUM(CASE WHEN PostTypeId = 3 THEN 1 ELSE 0 END) AS [Wikis], SUM(CASE WHEN PostTypeId = 4 THEN 1 ELSE 0 END) AS [TagWikiExcerpts], SUM(CASE WHEN PostTypeId = 5 THEN 1 ELSE 0 END) AS [TagWikis], SUM(CASE WHEN PostTypeId = 6 THEN 1 ELSE 0 END) AS [ModeratorNominations], SUM(CASE WHEN PostTypeId = 7 THEN 1 ELSE 0 END) AS [WikiPlaceholders], SUM(CASE WHEN PostTypeId = 8 THEN 1 ELSE 0 END) AS [PrivilegeWikis], SUM(CAST(PostCommentCounts.CommentIdCount AS BIGINT)) AS [Comments], COUNT(PostCommentCounts.CommentIdCount) AS [PostCommentCountsCount], COUNT(PostsWithDeleted.Id) AS [AllPostTypes] FROM PostsWithDeleted INNER JOIN PostCommentCounts ON PostCommentCounts.[Month] = DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1)
GROUP BY DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1) ORDER BY [Month] ASC
But the resulting graph also returned way too high values for Comments:
INNER JOIN also has way too high values for Comments. [Wayback/Archive] 537733862-c2f47291-107b-42fe-94ca-a3f53a2a88e3.png (980×495) Back to the drawing board My next try was to use a SUM on a subquery, but that failed with a “Line 22: Incorrect syntax near the keyword 'SELECT'. Incorrect syntax near ')'.“:
WITH PostCommentCounts AS ( SELECT DATEFROMPARTS(YEAR(Comments.CreationDate), MONTH(Comments.CreationDate), 1) AS [Month], COUNT(Id) AS CommentIdCount FROM Comments GROUP BY DATEFROMPARTS(YEAR(Comments.CreationDate), MONTH(Comments.CreationDate), 1) )
SELECT DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1) AS [Month], SUM(CASE WHEN PostTypeId = 1 THEN 1 ELSE 0 END) AS [Questions], SUM(CASE WHEN PostTypeId = 2 THEN 1 ELSE 0 END) AS [Answers], SUM(CASE WHEN PostTypeId = 3 THEN 1 ELSE 0 END) AS [Wikis], SUM(CASE WHEN PostTypeId = 4 THEN 1 ELSE 0 END) AS [TagWikiExcerpts], SUM(CASE WHEN PostTypeId = 5 THEN 1 ELSE 0 END) AS [TagWikis], SUM(CASE WHEN PostTypeId = 6 THEN 1 ELSE 0 END) AS [ModeratorNominations], SUM(CASE WHEN PostTypeId = 7 THEN 1 ELSE 0 END) AS [WikiPlaceholders], SUM(CASE WHEN PostTypeId = 8 THEN 1 ELSE 0 END) AS [PrivilegeWikis], SUM ( SELECT PostCommentCounts.CommentIdCount FROM PostCommentCounts WHERE PostCommentCounts.[Month] = PostsWithDeleted.[Month] ) AS [Comments], COUNT(PostsWithDeleted.Id) AS [AllPostTypes] FROM PostsWithDeleted GROUP BY DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1) ORDER BY [Month] ASC
Back then, I confused the order of SUM and SELECT, and I didn’t understand the ')' part of that error, but did some digging:
[Wayback/Archive] sql server subquery inside sum at DuckDuckGo (because SEDE is based on SQL Azure, which is based on SQL Server) [Wayback/Archive] “sql” “subquery” inside “sum” at DuckDuckGo (going more generic as the above query didn’t get useful results) [Wayback/Archive] Why SQL subquery doesn’t work inside SUM function? – Stack Overflow (thanks [Wayback/Archive] Trinh Cuong, [Wayback/Archive] Thorsten Kettner and [Wayback/Archive] Gordon Linoff)
Q I’m learning SQL, and the lesson is subquery. My query is: select sum (select tientra from thang7_8714 where tientra > 0) as tmp;
But Postgres notice me the message: ERROR: syntax error at or near "select" LINE 1: select sum (select tientra from thang7_8714 where tientra > ... SQL state: 42601 Character: 13 A SUM with a subquery SUM wants one parameter. This can be a fixed value (e.g. 123) or a column (e.g. mycolumn) or an expression (e.g. 123 * mycolumn) or a subquery. But this subquery would have to be scalar, which means it returns only one value.
A subquery is surrounded by parentheses, so such SUM with a subquery would look like this: select sum( (select t2.value from t2 where t2.id = t1.id_t1) ) from t1;
But subqueries inside aggregate functions are extremely rare, because we can achieve the same with a join (e.g. select sum(t2.value) from t1 join t2 on t2.id = t1.id_t2;). Typical places for subqueries: … that answer finished with a list (including examples) of places where subqueries usually are used, and was followed by this answer:
A
In general, SQL does not allow aggregation functions to have arguments that are subqueries. The generic solution is to move the aggregation inside the subquery: select (select sum(tientra) from thang7_8714 where tientra > 0) as tmp;
Presumably, you know that the more canonical method for solving this is: select sum(tientra) as tmp from thang7_8714 where tientra > 0;
This shows:
that PostgreSQL has a better error message than the SEDE (which is based on SQL Azure, which simplified is the a very recent SQL Server version running on Microsoft Azure) the conditions an aggregate expression needs to meet an alternative
In retrospect, it is obviously why a SUM needs a single value in its expression: it will aggregate (in this case summate) the single value for each occurance in the current GROUP BY. Even adding an extra set of parenthesis as suggested in the above answer does not resolve the “single value” problem: it just returns either a less specific answer “Something unexpected went wrong while running your query.” or “Line 25: Cannot perform an aggregate function on an expression containing an aggregate or a subquery.“:
WITH PostCommentCounts AS ( SELECT DATEFROMPARTS(YEAR(Comments.CreationDate), MONTH(Comments.CreationDate), 1) AS [Month], COUNT(Id) AS CommentIdCount FROM Comments GROUP BY DATEFROMPARTS(YEAR(Comments.CreationDate), MONTH(Comments.CreationDate), 1) )
SELECT DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1) AS [Month], SUM(CASE WHEN PostTypeId = 1 THEN 1 ELSE 0 END) AS [Questions], SUM(CASE WHEN PostTypeId = 2 THEN 1 ELSE 0 END) AS [Answers], SUM(CASE WHEN PostTypeId = 3 THEN 1 ELSE 0 END) AS [Wikis], SUM(CASE WHEN PostTypeId = 4 THEN 1 ELSE 0 END) AS [TagWikiExcerpts], SUM(CASE WHEN PostTypeId = 5 THEN 1 ELSE 0 END) AS [TagWikis], SUM(CASE WHEN PostTypeId = 6 THEN 1 ELSE 0 END) AS [ModeratorNominations], SUM(CASE WHEN PostTypeId = 7 THEN 1 ELSE 0 END) AS [WikiPlaceholders], SUM(CASE WHEN PostTypeId = 8 THEN 1 ELSE 0 END) AS [PrivilegeWikis], SUM (( SELECT PostCommentCounts.CommentIdCount FROM PostCommentCounts WHERE PostCommentCounts.[Month] = PostsWithDeleted.[Month] )) AS [Comments], COUNT(PostsWithDeleted.Id) AS [AllPostTypes] FROM PostsWithDeleted GROUP BY DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1) ORDER BY [Month] ASC
That means the SUM needs to be inside the SELECT, so I basically swapped the SUM and SELECT parts of it and this worked (In addition, as aliases apparently of the superquery are not allowed in the subquery causing the ambiguous error message “Line 23: Invalid column name 'Month'.“, I needed to replace PostsWithDeleted.[Month] with DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1):
WITH PostCommentCounts AS ( SELECT DATEFROMPARTS(YEAR(Comments.CreationDate), MONTH(Comments.CreationDate), 1) AS [Month], COUNT(Id) AS CommentIdCount FROM Comments GROUP BY DATEFROMPARTS(YEAR(Comments.CreationDate), MONTH(Comments.CreationDate), 1) )
SELECT DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1) AS [Month], SUM(CASE WHEN PostTypeId = 1 THEN 1 ELSE 0 END) AS [Questions], SUM(CASE WHEN PostTypeId = 2 THEN 1 ELSE 0 END) AS [Answers], SUM(CASE WHEN PostTypeId = 3 THEN 1 ELSE 0 END) AS [Wikis], SUM(CASE WHEN PostTypeId = 4 THEN 1 ELSE 0 END) AS [TagWikiExcerpts], SUM(CASE WHEN PostTypeId = 5 THEN 1 ELSE 0 END) AS [TagWikis], SUM(CASE WHEN PostTypeId = 6 THEN 1 ELSE 0 END) AS [ModeratorNominations], SUM(CASE WHEN PostTypeId = 7 THEN 1 ELSE 0 END) AS [WikiPlaceholders], SUM(CASE WHEN PostTypeId = 8 THEN 1 ELSE 0 END) AS [PrivilegeWikis], ( SELECT SUM(PostCommentCounts.CommentIdCount) FROM PostCommentCounts WHERE PostCommentCounts.[Month] = DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1) ) AS [Comments], COUNT(PostsWithDeleted.Id) AS [AllPostTypes] FROM PostsWithDeleted GROUP BY DATEFROMPARTS(YEAR(PostsWithDeleted.CreationDate), MONTH(PostsWithDeleted.CreationDate), 1) ORDER BY [Month] ASC
More importantly, the graph was also correct:
Comments for the Questions, Answers, Wikis TagWikiExcerpts, TagWikis, ModerationNominations, WikiPlaceholders, PrivilegeWikis, AllPostTypes including deleted ones per month (correlated by month) [Wayback/Archive] 537739041-0bbe4aef-977d-48f6-87ce-95e646b08b1b.png (981×520) And the graph worries me of the future: besides questions and answers dropping, also the ratio of answers/question and comments/post are dropping. Bo the ratios are important measures on interaction, and I think less interaction means less quality. Comparing the queries Note that I intentionally left the order of the columns the same in all queries so – sorry if you are not colorblind – you can compare the data across the graphs except for the ones in the graph “CommentIdCount by month”. I wish the SEDE would offer other options than colours to distinguish column data, but they don’t. If you want build upon these queries multiple times in various directions, then the SEDE by default (because it prefers linear history) it allows just one fork, but in practice you can by realising that the Query Stack Overflow – Stack Exchange Data Explorer: fork “Questions per month including deleted” has this URL data.stackexchange.com/stackoverflow/query/fork/1932522 In a similar way, editing a query has a URL like this: data.stackexchange.com/stackoverflow/query/edit/1933447 In fact there are at least 6 URL forms for query:
Types of SEDE query URLs
Form Example
View data.stackexchange.com/stackoverflow/query/1933447
View with name data.stackexchange.com/stackoverflow/query/1933447/questions-answers-and-other-post-types-per-month-including-deleted
Edit data.stackexchange.com/stackoverflow/query/edit/1933447
Fork data.stackexchange.com/stackoverflow/query/fork/1933447
View with revision data.stackexchange.com/stackoverflow/revision/1933447/2375006
View with revision and name data.stackexchange.com/stackoverflow/revision/1933447/2375006/questions-answers-and-other-post-types-per-month-including-deleted
All of these can have various fragments to switch the results view into various modes or direct focus to various inputs:
Type of SEDE query fragments (including their #)
Fragment Meaning
#result Results view
#resultSets Results view
#messages Messages view
#graph Graph view
#executionPlan Execution plan view (only visible when “Include execution plan” is checked before running the query)
#edit-query-description Query description text area
#sql SQL text area
#query-params Query parameters edits (only visible when there are query parameters)
#site-selector Site selector pane
#switch-sites Site selector query input
There are more fragments, but these do not set focus. I got to the above tables because these were in my query history:
https://data.stackexchange.com/stackoverflow/revision/1933385/2374944/answers-per-month-including-deleted https://data.stackexchange.com/stackoverflow/revision/1933447/2375006/questions-answers-and-other-post-types-per-month-including-deleted https://data.stackexchange.com/stackoverflow/query/1933489/comments-for-questions-answers-and-other-posts-per-month-including-deleted https://data.stackexchange.com/stackoverflow/query/edit/1933447 https://data.stackexchange.com/stackoverflow/revision/1933447/2367378/questions-answers-and-other-post-types-per-month-including-deleted https://data.stackexchange.com/stackoverflow/query/edit/1933489 https://data.stackexchange.com/stackoverflow/query/edit/1933447#graph https://data.stackexchange.com/stackoverflow/query/edit/1933447#messages https://data.stackexchange.com/stackoverflow/revision/1932522/2374035/questions-per-month-including-deleted#graph https://data.stackexchange.com/stackoverflow/query/fork/1932522 https://data.stackexchange.com/stackoverflow/query/edit/1933385#graph https://data.stackexchange.com/stackoverflow/query/1933385/answers-per-month-including-deleted https://data.stackexchange.com/stackoverflow/revision/1933385/2374944/answers-per-month-including-deleted#messages https://data.stackexchange.com/stackoverflow/revision/1932522/2367458/questions-per-month-including-deleted https://data.stackexchange.com/stackoverflow/revision/1932522/2367378/questions-per-month-including-deleted https://data.stackexchange.com/stackoverflow/query/1933447/questions-answers-and-other-post-types-per-month-including-deleted#graph https://data.stackexchange.com/stackoverflow/query/edit/1933448#graph https://data.stackexchange.com/stackoverflow/query/new https://data.stackexchange.com/stackoverflow/query/edit/1933449#resultSets https://data.stackexchange.com/stackoverflow/query/1933449/total-posts-and-comments https://data.stackexchange.com/stackoverflow/query/edit/1933462#graph https://data.stackexchange.com/stackoverflow/query/edit/1933642 https://data.stackexchange.com/stackoverflow/query/1933642/comments-count-by-month https://data.stackexchange.com/stackoverflow/revision/1933642/2375208/comments-count-by-month https://data.stackexchange.com/stackoverflow/revision/1933642/2375209/comments-count-by-month https://data.stackexchange.com/stackoverflow/revision/1933642/2375210/comments-count-by-month https://data.stackexchange.com/stackoverflow/revision/1933447/2375558/comments-for-questions-answers-and-other-post-types-per-month-incl-deleted-cor
The above URL table also means that you can edit anyone elses queries (in essence creating a fork of it) like data.stackexchange.com/stackoverflow/query/edit/1932522 I did and ended up with the above four forks all stemming from query 1932522: Questions per month including deleted – Stack Exchange Data Explorer:
1933385: Answers per month including deleted – Stack Exchange Data Explorer 1933447: Questions, answers and other post types per month including deleted – Stack Exchange Data Explorer
1933489: Comments for questions, answers and other posts per month including deleted – Stack Exchange Data Explorer 1933447: Comments for questions, answers and other post types per month incl. deleted (correlated by month) – Stack Exchange Data Explorer
Of course, I could have forked 2.2. from 2.1. but then I could not have shown you can fork your own queries. What I did was forking Questions, answers and other post types per month including deleted – Stack Exchange Data Explorer to create a second history tree by editing data.stackexchange.com/stackoverflow/revision/1933447/2375006/questions-answers-and-other-post-types-per-month-including-deleted into data.stackexchange.com/stackoverflow/query/fork/1933447 So if I want to fork Comments for questions, answers and other posts per month including deleted – Stack Exchange Data Explorer as well, now i know how! Stack Exchange Data Explorer (SEDE) The above graphs were made using the Stack Exchange Data Explorer (SEDE). Some links on it’s basics:
[Wayback/Archive] Stack Exchange Data Explorer (SEDE) at DuckDuckGo [Wayback/Archive] Introducing the Stack Exchange Data Explorer aka SEDE – Meta Stack Exchange was the original 2010 introduction post [Wayback/Archive] Introducing Stack Exchange Data Explorer – Stack Overflow is a better introduction than the above post [Wayback/Archive] GitHub – hirupert/sede: Text-to-SQL in the Wild: A Naturally-Occurring Dataset Based on Stack Exchange Data [Wayback/Archive] What is Stack Exchange Data Explorer (SEDE)? – SQL DBA Blog
SEDE used to be a great playground to learn SQL, but the current rate limiting makes it less useful for that. That means that by now, the best way to use it is with good enough SQL knowledge and a grasp of the Stack Exchange data model. For the last part, these links will help:
[Wayback/Archive] Database schema documentation for the public data dump and SEDE – Meta Stack Exchange [Wayback/Archive] Show all types – Stack Exchange Data Explorer (Ids and Names for PostTypes, CloseAsOffTopicReasonTypes, CloseReasonTypes, FlagTypes, PostHistoryTypes, PostNoticeTypes, VoteTypes, ReviewTaskResultTypes, ReviewTaskTypes) [Wayback/Archive] Stack Exchange Data Explorer has statistics for all Stack Exchange sites; I never before noticed that Mathematics made it to the second place in between Stack Overflow and Super User. [Wayback/Archive] Next Steps – Stack Exchange Data Explorer is the end of the SQL tutorial and has some useful links [Wayback/Archive] Worldbuilding Data Queries – Worldbuilding Meta Stack Exchange has a lot of nice queries all neatly described and categorised. [Wayback/Archive] Browse Queries – Stack Exchange Data Explorer – featured queries applied to Meta Stack Exchange [Wayback/Archive] Browse Queries – Stack Exchange Data Explorer – the same featured queries applied to Stack Overflow [Wayback/Archive] Browse Queries – Stack Exchange Data Explorer: popular (on Stack Overflow) is measured by view count [Wayback/Archive] Browse Queries – Stack Exchange Data Explorer: favorite (on Stack Overflow) is a kind of upvoting, but for queries a
A few more useful links on SEDE:
[Wayback/Archive] – Stack Exchange Data Explorer is unnamed, but shows how to use a temporary table combined with set nocount on to show posts with large downvote/upvote rations, of which the SQL incidentally showed the same method as I used for the graph with all post types. [Wayback/Archive] How can I have a parameter in SEDE that can be compared with multiple DATETIME values? – Meta Stack Exchange (thanks [Wayback/Archive] starball and [Wayback/Archive] Glorfindel) which in the linked example shows:
passing passing parameters by URL setting the data type for a parameter shows the Id AS [Post Link] trick to get links to posts
Looks like SEDE doesn’t like underscores in parameter names? This works for me: SELECT Id AS [Post Link], LastEditDate, LastActivityDate FROM Posts WHERE LastEditDate >= ##dateParam:string## OR LastActivityDate >= ##dateParam:string##
Note that you must declare date parameters as a string, otherwise I think it’s trying to calculate 2025 - 12 - 15 = 1988 or something, and I get basically the entire table back.
Linked query: [ArchiveSave] data.stackexchange.com/meta.stackexchange/query/1926606?dateParam=2025-12-25 [Wayback/Archive] Top Users by Country – Stack Exchange Data Explorer shows the Id AS [User Link] trick to get links to users. [Wayback/Archive] Vanity search: links to my website posted by other people during last 2 months – Stack Exchange Data Explorer
Note that Stack Exchange is giving both the Wayback Machine and Archive.is a hard time archiving SEDE links, see for instance the [Wayback] of the last linked query above. That’s a pity, as with the decline of Stack Exchange, it might go off-line one day taking all kinds of historically relevant data with it. Via
[Wayback/Archive] Post by @wiert.bsky.social — Bluesky: Source [Wayback/Archive] Sherwood News Stack Overflow’s Forum’s Decline Started Years Ago, But Al Killed The Platform For Good at DuckDuckGo
--jeroen PS: My favorite queries are listed at User Jeroen.Wiert.Pluimers – Stack Exchange Data Explorer. Regrettably, this long cannot be archived, so I quoted the list at the time of finishing this blog post:
Comments for questions, answers and other posts per month including deleted Comments count by Month Total Posts and Comments Comments for questions, answers and other post types per month incl. deleted (correlated by month) Answers per month including deleted Questions per month including deleted Total Questions and Answers per Month for the last 12
Rate this:Share this: Share on Mastodon (Opens in new window) Mastodon
Share on Bluesky (Opens in new window) Bluesky Share on Tumblr Share on Reddit (Opens in new window) Reddit
Share on Threads (Opens in new window) Threads Tweet Share on Telegram (Opens in new window) Telegram
Share on Nextdoor (Opens in new window) Nextdoor
Share on WhatsApp (Opens in new window) WhatsApp
Print (Opens in new window) Print
Email a link to a friend (Opens in new window) Email Like Loading...
Related
This entry was posted on 2026/05/26 at 18:00 and is filed under AI and ML; Artificial Intelligence & Machine Learning, Database Development, Development, DVCS - Distributed Version Control, GitHub, GitHub Copilot, GitLab, LLM, Pingback, Software Development, Source Code Management, SQL, SQL Server, StackExchange, Stackoverflow. Tagged: edit, executionPlan, graph, messages, query, result, results, resultSets, site, SQL, switch, ThisIsWhyWeCantHaveNiceThings. You can follow any responses to this entry through the RSS 2.0 feed.
You can leave a response, or trackback from your own site.
Leave a comment Cancel reply
Δ This site uses Akismet to reduce spam. Learn how your comment data is processed. « KotlinConf’23 video streams (including the keynote by Kevlin Henney which is generic to any programming language or concept)
Blog at WordPress.com.
Comment
Reblog
Subscribe
Subscribed
The Wiert Corner - irregular stream of stuff
Join 717 other subscribers
Sign me up
Already have a WordPress.com account? Log in now.
The Wiert Corner - irregular stream of stuff
Subscribe
Subscribed
Sign up Log in
Copy shortlink
Report this content
View post in Reader
Manage subscriptions
Collapse this bar
Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use. To find out more, including how to control cookies, see here: Cookie Policy
%d |