Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #38138

Re: Improve reduce functions of SQLite3 request

Path csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder2.hal-mli.net!newsfeed.xs4all.nl!newsfeed1.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail
Return-Path <python-python-list@m.gmane.org>
X-Original-To python-list@python.org
Delivered-To python-list@mail.python.org
X-Spam-Status OK 0.001
X-Spam-Evidence '*H*': 1.00; '*S*': 0.00; 'output': 0.04; 'subsequent': 0.04; 'column': 0.07; 'function,': 0.07; 'mysql,': 0.07; 'terminated': 0.07; 'trailing': 0.07; 'python': 0.09; 'integer,': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'sqlite': 0.09; 'stored': 0.10; 'index': 0.13; '(there': 0.16; 'distinct': 0.16; 'presume': 0.16; 'received:80.91.229.3': 0.16; 'received:plane.gmane.org': 0.16; 'sqlite3': 0.16; 'statement.': 0.16; 'mon,': 0.16; 'integer': 0.17; 'subject:request': 0.17; 'feb': 0.19; '+0000': 0.20; 'skip:= 10': 0.20; 'suggested': 0.20; 'demonstrate': 0.23; 'insert': 0.23; 'matching': 0.23; '----------': 0.26; 'select': 0.26; 'values': 0.26; 'separate': 0.27; 'entries': 0.27; "doesn't": 0.28; 'header:X-Complaints- To:1': 0.28; 'equivalent,': 0.29; 'statements': 0.29; 'unique,': 0.29; 'probably': 0.29; "i'm": 0.29; 'maybe': 0.29; 'function': 0.30; 'primary': 0.30; 'club': 0.33; 'function.': 0.33; 'url:home': 0.33; 'to:addr:python-list': 0.33; 'another': 0.33; 'that,': 0.34; 'version': 0.34; 'skip:- 20': 0.34; 'table': 0.35; 'something': 0.35; 'received:org': 0.36; 'test': 0.36; 'should': 0.36; 'keeps': 0.37; 'does': 0.37; 'subject:: ': 0.38; 'mean': 0.38; 'to:addr:python.org': 0.39; 'space': 0.39; 'called': 0.39; 'where': 0.40; 'header:Received:5': 0.40; 'your': 0.60; 'leading': 0.61; 'skip:n 10': 0.63; 'within': 0.64; 'here': 0.65; 'limit': 0.65; 'union': 0.66; 'foreign': 0.72; '2");': 0.84; '2013': 0.84; '3");': 0.84; '359': 0.91; 'by.': 0.91; 'dennis': 0.91; 'received:108': 0.91; 'poorly': 0.93
X-Injected-Via-Gmane http://gmane.org/
To python-list@python.org
From Dennis Lee Bieber <wlfraed@ix.netcom.com>
Subject Re: Improve reduce functions of SQLite3 request
Date Mon, 04 Feb 2013 15:45:27 -0500
Organization > Bestiaria Support Staff <
References <kelbl0$1jv$1@nerdhammel.gnuher.de> <mailman.1317.1359915110.2939.python-list@python.org> <keogmb$dml$1@nerdhammel.gnuher.de>
Mime-Version 1.0
Content-Type text/plain; charset=ISO-8859-1
Content-Transfer-Encoding 8bit
X-Gmane-NNTP-Posting-Host adsl-108-79-219-20.dsl.klmzmi.sbcglobal.net
X-Newsreader Forte Agent 3.3/32.846
X-No-Archive YES
X-BeenThere python-list@python.org
X-Mailman-Version 2.1.15
Precedence list
List-Id General discussion list for the Python programming language <python-list.python.org>
List-Unsubscribe <http://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-list/>
List-Post <mailto:python-list@python.org>
List-Help <mailto:python-list-request@python.org?subject=help>
List-Subscribe <http://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe>
Newsgroups comp.lang.python
Message-ID <mailman.1331.1360010737.2939.python-list@python.org> (permalink)
Lines 117
NNTP-Posting-Host 2001:888:2000:d::a6
X-Trace 1360010737 news.xs4all.nl 6904 [2001:888:2000:d::a6]:36743
X-Complaints-To abuse@xs4all.nl
Xref csiph.com comp.lang.python:38138

Show key headers only | View raw


On Mon, 4 Feb 2013 14:30:35 +0000 (UTC), Steffen Mutter
<steffen@webanimations.de> declaimed the following in
gmane.comp.python.general:


> 
> here the output of your suggested solution:
> SELECT DISTINCT * FROM (
>   SELECT HeimNr as nr, Heim as club FROM Runde20122013 
>     WHERE kreis ="karlsruhe" 
> UNION 
>   SELECT GastNr as nr, gast as club FROM Runde20122013 
>     WHERE kreis ="karlsruhe") LIMIT 10; 
> 
> 359|TV Calmbach 
> 21101|SG Heidel/Helm 
> 21236|JSG Neuth/Büch 
> 23108|TG Eggenstein 
> 23108|TGEggenstein 2 <- 
> 23109|TV Ettlingenw 
> 23109|TV Ettlingenw 2 <-
> 23112|TSV Jöhlingen 
> 23112|TSV Jöhlingen 2 <- 
> 23112|TSV Jöhlingen 3 <-
> 
> Still not like what I'm looking for.

	I presume you mean the " 2" and " 3" on those entries should not be
considered when matching "distinct".

	I suspect you have a poorly normalized database (what does that
trailing number identify? Heck, are the leading initials unique to the
subsequent name?). The trailing number should probably be something
stored as a separate field. If the initials are unique, they should be a
separate field used as a foreign reference to retrieve the longer name.

	For MySQL, MAYBE (there is a single space in the ' ')

SELECT DISTINCT nr, substring_index(cb, ' ', 2) as club FROM (
  SELECT HeimNr as nr, Heim as cb FROM Runde20122013 
    WHERE kreis ="karlsruhe" 
UNION 
  SELECT GastNr as nr, gast as cb FROM Runde20122013 
    WHERE kreis ="karlsruhe") LIMIT 10; 

	This function keeps only the part before the 2nd space (if such is
found) in the club name.

	Oh wait -- you are using SQLite3... SQLite3 doesn't have the
substring_index function, and I don't even find an index function.
However, you CAN write a Python function to do the equivalent, and
register it with SQLite3 so that it can be called from within the SQL
statement. I'm not going to demonstrate that, though it may be better
than another alternative:

SELECT DISTINCT nr, min(cb) as club FROM (
  SELECT HeimNr as nr, Heim as cb FROM Runde20122013 
    WHERE kreis ="karlsruhe" 
UNION 
  SELECT GastNr as nr, gast as cb FROM Runde20122013 
    WHERE kreis ="karlsruhe") 
GROUP BY nr
LIMIT 10; 

	Let's see...
E:\UserData\Wulfraed\My Documents>sqlite3 demo
SQLite version 3.6.3
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table test
   ...> (
   ...>         ID integer primary key autoincrement,
   ...>         nr integer,
   ...>         club varchar(50)
   ...> );
sqlite> insert into test (nr, club) values (359, "TV Calmbach");
sqlite> insert into test (nr, club) values (21101,"SG Heidel/Helm");
sqlite> insert into test (nr, club) values (23112,"TSV Johlingen 3");
sqlite> insert into test (nr, club) values (23109,"TV Ettlingenw 2");
sqlite> insert into test (nr, club) values (23112,"TSV Johlingen");
sqlite> insert into test (nr, club) values (23109,"TV Ettlingenw");
sqlite> insert into test (nr, club) values (23108,"TG Eggenstein");
sqlite> insert into test (nr, club) values (21236,"JSG Neuth/Buch");
sqlite> insert into test (nr, club) values (23112,"TSV Johlingen 2");
sqlite> insert into test (nr, club) values (23108,"TG Eggenstein 2");
sqlite> .mode column
sqlite> .head on
sqlite> .width 10, 25, 25
sqlite> select * from test;
ID          nr                         club
----------  -------------------------  -------------------------
1           359                        TV Calmbach
2           21101                      SG Heidel/Helm
3           23112                      TSV Johlingen 3
4           23109                      TV Ettlingenw 2
5           23112                      TSV Johlingen
6           23109                      TV Ettlingenw
7           23108                      TG Eggenstein
8           21236                      JSG Neuth/Buch
9           23112                      TSV Johlingen 2
10          23108                      TG Eggenstein 2
sqlite> select nr, min(club) from test group by nr;
nr          min(club)
----------  -------------------------
359         TV Calmbach
21101       SG Heidel/Helm
21236       JSG Neuth/Buch
23108       TG Eggenstein
23109       TV Ettlingenw
23112       TSV Johlingen
sqlite>

	Don't even need the DISTINCT with the GROUP BY.
-- 
	Wulfraed                 Dennis Lee Bieber         AF6VN
        wlfraed@ix.netcom.com    HTTP://wlfraed.home.netcom.com/

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Improve reduce functions of SQLite3 request Steffen Mutter <steffen@webanimations.de> - 2013-02-03 09:46 +0000
  Re: Improve reduce functions of SQLite3 request Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2013-02-03 13:11 -0500
    Re: Improve reduce functions of SQLite3 request Steffen Mutter <steffen@webanimations.de> - 2013-02-04 14:30 +0000
      Re: Improve reduce functions of SQLite3 request Dave Angel <davea@davea.name> - 2013-02-04 10:30 -0500
      Re: Improve reduce functions of SQLite3 request Peter Otten <__peter__@web.de> - 2013-02-04 17:29 +0100
      Re: Improve reduce functions of SQLite3 request Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2013-02-04 15:45 -0500
        Re: Improve reduce functions of SQLite3 request Steffen Mutter <steffen@webanimations.de> - 2013-02-04 22:05 +0000
          Re: Improve reduce functions of SQLite3 request Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2013-02-04 18:47 -0500
            Re: Improve reduce functions of SQLite3 request Steffen Mutter <steffen@webanimations.de> - 2013-02-06 09:18 +0000
              Re: Improve reduce functions of SQLite3 request Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2013-02-06 12:26 -0500
                Re: Improve reduce functions of SQLite3 request Steffen Mutter <steffen@webanimations.de> - 2013-02-06 23:33 +0000
                Re: Improve reduce functions of SQLite3 request Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2013-02-07 00:40 -0500
                Re: Improve reduce functions of SQLite3 request Steffen Mutter <steffen@webanimations.de> - 2013-02-07 11:33 +0000
                Re: Improve reduce functions of SQLite3 request Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2013-02-07 13:03 -0500
                Re: Improve reduce functions of SQLite3 request Steffen Mutter <steffen@webanimations.de> - 2013-02-07 22:54 +0000
                Re: Improve reduce functions of SQLite3 request Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2013-02-08 12:17 -0500
                Re: Improve reduce functions of SQLite3 request Steffen Mutter <steffen@webanimations.de> - 2013-02-08 19:59 +0000

csiph-web