Utdrag från DB med COUNT

PHPportalen Forum Index » Databaser
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
snylften



Medlem i: 3696 dagar

Status: Offline



#741189
Inlägg Skrivet: 2016-11-14 13:21      Ämne: Utdrag från DB med COUNT Citera

Jag har en tabell med företag. Varje företag har ett postnummer där företaget ligger.
Sedan har jag en tabell med alla postnummer, ort som postnumret representerar samt ett ID som representerar vilket län kommunen postnumret ligger i.

Jag vill med hjälp av dessa tabeller göra en databasfråga som skriver ut alla län och hur många företag som finns i respektive län. typ så här
Stockholm (67st)
Uppsala (15)
västra götaland (103st)
etc.

Hur löser jag det här?


Tabell med postnummer (ni får bara några stycken, det blir för tungt att skriva ut alla)
KOD:
1:
CREATE TABLE `postcode` (
2:
  `id` int(5) unsigned NOT NULL DEFAULT '0',
3:
  `txt` varchar(50) COLLATE utf8_swedish_ci NOT NULL,
4:
  `municipality` int(4) NOT NULL,
5:
  `county` int(10) NOT NULL,
6:
  KEY `id` (`id`)
7:
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_swedish_ci;
8:
 
9:
--
10:
-- Dumping data for table `postcode` Tabellen består av över 11000 rader men ni hajjar uppbyggnaden :)
11:
--
12:
 
13:
INSERT INTO `postcode` (`id`, `txt`, `municipality`, `county`) VALUES
14:
(56192, 'Huskvarna', 680, 6),
15:
(56193, 'Huskvarna', 680, 6),
16:
(56201, 'Norrahammar', 680, 6),
17:
(56202, 'Taberg', 680, 6),
18:
(56221, 'Norrahammar', 680, 6),
19:
(56222, 'Norrahammar', 680, 6),
20:
(56223, 'Norrahammar', 680, 6),
21:
(56224, 'Norrahammar', 680, 6),
22:
(56228, 'Norrahammar', 680, 6),
23:
(56230, 'Norrahammar', 680, 6);



Tabell med alla län
KOD:
1:
CREATE TABLE `county` (
2:
  `id` tinyint(2) NOT NULL,
3:
  `txt` varchar(50) CHARACTER SET utf8 COLLATE utf8_swedish_ci DEFAULT NULL,
4:
  PRIMARY KEY (`id`)
5:
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=utf8_swedish_ci;
6:
 
7:
--
8:
-- Dumping data for table `county`
9:
--
10:
 
11:
INSERT INTO `county` (`id`, `txt`) VALUES
12:
(10, 'Blekinge'),
13:
(20, 'Dalarna'),
14:
(21, 'Gävleborg'),
15:
(13, 'Halland'),
16:
(23, 'Jämtland'),
17:
(6, 'Jönköping'),
18:
(8, 'Kalmar'),
19:
(7, 'Kronoberg'),
20:
(25, 'Norrbotten'),
21:
(12, 'Skåne'),
22:
(1, 'Stockholm'),
23:
(4, 'Södermanland'),
24:
(3, 'Uppsala'),
25:
(17, 'Värmland'),
26:
(24, 'Västerbotten'),
27:
(22, 'Västernorrland'),
28:
(19, 'Västmanland'),
29:
(14, 'Västra Götaland'),
30:
(18, 'Örebro'),
31:
(5, 'Östergötland'),
32:
(9, 'Gotland');




Tabell med företag. Det är här postcode som är postnummer Smile
KOD:
1:
CREATE TABLE `companies` (
2:
  `company_id` int(11) NOT NULL AUTO_INCREMENT,
3:
  `company_name` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
4:
  `address` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
5:
  `co_address` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
6:
  `phone` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
7:
  `postcode` int(5) NOT NULL,
8:
  `email` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
9:
  `www` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
10:
  `gps` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
11:
  `logo_url` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
12:
  PRIMARY KEY (`company_id`)
13:
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_swedish_ci AUTO_INCREMENT=2336 ;
14:
 
15:
--
16:
-- Dumping data for table `companies`
17:
--
18:
 
19:
INSERT INTO `companies` (`company_id`, `company_name`, `address`, `co_address`, `phone`, `postcode`, `email`, `www`, `gps`, `logo_url`) VALUES
20:
(1318, 'Aktiebolaget Möbel hansson ', 'STORKYRKOBRINKEN 6', '', '08-208691', 11128, '', '', '', NULL),
21:
(1319, 'Stopalo Aktiebolag ', 'SVEAVÄGEN 19', '', '070-8724230', 19134, '', '', '', NULL),
22:
(1320, 'Kornhamnstorg Antikvariat Aktiebolag ', 'HEIMDALSGATAN 4', 'SYNNERHOLM', '08-202472', 11328, '', '', '', NULL),
23:
(1321, 'Hagelin Rare Books Aktiebolag ', 'BOX 3321', '', '08-6737505', 10366, '', '', '', NULL),
24:
(1322, 'Gerschmans Konsthandel Aktiebolag ', 'STRANDVÄGEN 29', '', '08-6637898', 11456, '', '', '', NULL),
25:
(1323, 'Tropius Antik Aktiebolag ', 'NYBROGATAN 42', '', '08-104097', 11440, '', '', '', NULL),
26:
(1324, 'Frånö Antikbod Aktiebolag ', 'KULLAGATAN 58', '', '042-147734', 25220, '', '', '', NULL),
27:
(1325, 'Högsmölla Snäckan AB', 'ULRIKAGATAN 15', 'NORELID', '070-7360104', 11523, '', '', '', NULL),
28:
(1326, 'Roland Olsson Trading And Industry Consulting r ', 'AXELSONS TORG 2 N 1 TR', '', '08-6699800', 23933, '', '', '', NULL),
29:
(1327, 'Brunflo Antik Och Begagnad Handel Aktiebolag ', 'BOX 3057', '', '063-21065', 83103, '', '', '', NULL),
30:
(1328, 'Antiqvm Aktiebolag ', 'VILEBOVÄGEN 3', '', '070-6276260', 21763, '', '', '', NULL),
31:
(1329, 'Järntorgsboden Aktiebolag ', 'BAGARFRUVÄGEN 9', '', '076-2288179', 12867, '', '', '', NULL),
32:
(1330, 'K m Flodin & Co Aktiebolag ', 'STUREVÄGEN 15', 'PER FLODIN', '0705-798090', 14145, '', '', '', NULL),
33:
(1331, 'L Edelstam Konst & Antikviteter Aktiebolag ', 'BOX 79', '', '08-6114980', 18205, '', '', '', NULL),
34:
(1332, 'Ryös Antikvariat Aktiebolag ', 'HANTVERKARGATAN 21', '', '08-6548086', 11221, '', '', '', NULL),
35:
(1333, 'Theo & Kristina Lundgren Aktiebolag ', 'ARSENALSGATAN 3', '', '', 11147, '', '', '', NULL),
36:
(1334, 'Antikwest Aktiebolag ', 'GIBRALTARGATAN 8', '', '031-185160', 41132, '', '', '', NULL),
37:
(1335, 'Beso Ur & Antik Aktiebolag ', 'VÄSTRA HAMNGATAN 6', '', '031-139484', 41117, '', '', '', NULL),
38:
(1336, 'Små Kära Ting Aktiebolag ', 'KVARNSTENSVÄGEN 15', '', '031-469335', 43370, '', '', '', NULL),
39:
(1337, 'Assar Karlsson AB', 'BRUSEWITZ VÄG 20', 'KARLSSON', '08-7775827', 13649, '', '', '', NULL),
40:
(1338, 'Ostindiska i Stockholm Ulla Nordström AB', 'ODENGATAN 16 4TR', '', '08-6672825', 11424, '', '', '', NULL),
41:
(1339, 'Bengts Konst Och Antik Aktiebolag ', 'WRANGELSGATAN 17 LGH 1104', 'BENGT PERSSON', '042-122449', 25439, '', '', '', NULL),
42:
(1340, 'Guldsmedshyttans Antik Aktiebolag ', 'FANTHYTTAN 194', '', '0581-41122', 71196, '', '', '', NULL),
43:
(1341, 'Mmi Silver Och Form Aktiebolag ', 'BERGSTIGEN 11', '', '08-6554155', 18278, '', '', '', NULL),
44:
(1342, 'Anders Olsén Förvaltning AB', 'SÖDRA PROMENADEN 35', '', '011-184230', 60234, '', '', '', NULL),
45:
(1343, 'Strålmans Rådgivning Aktiebolag ', 'LANDBOTORPSALLÉN 5 A', '', '070-5714445', 70226, '', '', '', NULL),
46:
(1344, 'Anticci AB', 'UVGATAN 1', '', '031-152555', 65466, '', '', '', NULL),
47:
(1345, 'Uppköpet i Stockholm Aktiebolag ', 'GALÄRVÄGEN 24', '', '08-7156032', 13247, '', '', '', NULL),
48:
(1346, 'Lk antik Inredning o Konsult Aktiebolag ', 'ALPVÄGEN 12 B', '', '0158-60590', 15360, '', '', '', NULL),
49:
(1347, 'Mobile Books Aktiebolag ', 'LINGONGATAN 32', '', '040-411941', 23443, '', '', '', NULL);
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Koenigsegg



Medlem i: 2964 dagar

Status: Offline



#741192
Inlägget är accepterad som det rätta svaret Skrivet: 2016-11-14 18:54      Ämne: Citera

Titta på http://www.phpportalen.net/viewtopic.php?p=741178#741178

Du vill ha
KOD:
1:
SELECT COUNT(*), countyname FROM ... GROUP BY countyname

GROUP BY gör så att COUNT() arbetar inom gruppen i stället för med hela resultatet.

För extrapoäng kan du ju göra nåt i stil med
KOD:
1:
CONCAT(countyname, '(', COUNT(*), 'st)')
Smile
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » Databaser
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic