metaclass: (Default)
[personal profile] metaclass
http://justy-tylor.livejournal.com/205808.html?thread=873456#t873456 "глупо ожидать удобства от древнего бухгалтерского DSL в двадцать первом веке." - это про SQL, который изначально вообще задумывался вроде для разного рода бухгалтеров и экономистов, но они "не осилили".

Я вот думаю, что Clojure на роль бухгалтерского DSL подходит гораздо лучше :)

Date: 2013-04-28 08:54 pm (UTC)
From: [identity profile] falcrum.livejournal.com
Угу. Не осилили квадратные уравнения - дадим дифуры: тут-то и попрёт! :)

Date: 2013-04-28 09:06 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Ай, все что делается в стиле "пользователь будет сам программировать" - никогда не работает и всегда заканчивается появлением новой специализации программистов.
Даже если работодатель потребует от бухгалтеров умения программировать (что им очень сильно бы облегчило жизнь) - это кончится тем, что такие бухгалтера сбегут к вендорам бухгалтерского софта на гораздо большую зарплату.

Date: 2013-04-28 09:11 pm (UTC)
From: [identity profile] theiced.livejournal.com
да. вон же давеча был хороший пример с ортуреговым стартапом же :) айсед сразу сказал - ХУЙ и так оно и получилось.

Date: 2013-04-29 06:03 am (UTC)
From: [identity profile] vp.livejournal.com
Что за стартап?

Date: 2013-04-29 08:12 am (UTC)
From: [identity profile] theiced.livejournal.com
тулза-для-манагеров-шоп-они-могли-делать-мобильные-приложения-прямо-из-браузера

Date: 2013-04-29 08:16 am (UTC)
From: [identity profile] vp.livejournal.com
Да-да, это всегда срабатывало :))

Date: 2013-04-29 05:23 am (UTC)
From: [identity profile] plumqqz.livejournal.com
1. А чем вас джойн по строке расстраивает?
2. Вариант с датой рождения имеет право на сущестование - можно даже регион воткнуть. Другое дело, что верить ему нельзя
3. Таарищ не понимает, что sql такой, какой он есть не потому, что кому-то так захотелось, но потому, что иначе не получилось. Нет, можно, конечно, синтаксически переразметить, но суть от этого не изменится.

UPD С айдюком, кстати, правильно - кроме общего хинта, когда, скорее всего,родился персонаж можно иметь конкретное место и дату выдачи и выдавшего.
Edited Date: 2013-04-29 05:26 am (UTC)

Date: 2013-04-29 07:01 am (UTC)
From: [identity profile] bydl0coder.livejournal.com
3. От SQL не хватает группировки типа "по неделям и итог по каждому месяцу". Остальное все отлично.

Date: 2013-04-29 07:11 am (UTC)
From: [identity profile] plumqqz.livejournal.com
Ну что уж тут поделаешь, раз не хватает.

Date: 2013-04-29 08:28 am (UTC)
From: [identity profile] nivanych.livejournal.com
Скажите, а как у вас проявляется эта нехватка?
Сильно ли она вас беспокоит по ночам?

Date: 2013-04-29 09:44 am (UTC)
From: [identity profile] bydl0coder.livejournal.com
Проявляется в том, что нужно делать группировку на клиенте, а она, во-первых, на мейнстримных языках выглядит очень плохо, а во-вторых, логика размазывается по клиенту и базе. Из базы надо либо совсем сырые данные брать либо уже готовое все.

Date: 2013-04-29 10:42 am (UTC)
From: [identity profile] nivanych.livejournal.com
Что это за SQL у вас такой?

Date: 2013-04-29 10:43 am (UTC)
From: [identity profile] bydl0coder.livejournal.com
Блядь, тут кто-нибудь нормально разговаривать умеет?

Date: 2013-04-29 10:47 am (UTC)
From: [identity profile] nivanych.livejournal.com
Хорошо. Скажу нормально.
Читайте доки бля!

Date: 2013-04-29 10:58 am (UTC)
From: [identity profile] bydl0coder.livejournal.com
можно ли без извратов получить от базы такое:

month | item |amount
---------------------
01.13 | guns | 100
01.13 | butter | 150
null | null | 250
02.13 | guns | 50
02.13 | butter | 70
null | null | 120

Date: 2013-04-29 11:08 am (UTC)
From: [identity profile] nivanych.livejournal.com
Смотря что вы считаете извратами.
Можно получить при помощи SQL.
http://www.postgresql.org/docs/devel/static/tutorial-window.html

Date: 2013-04-29 11:11 am (UTC)
From: [identity profile] bydl0coder.livejournal.com
Получить, да не то.

Date: 2013-04-29 11:23 am (UTC)
From: [identity profile] nivanych.livejournal.com
Ога. Не то. Там цЫферки другие написаны.
Надо-то что? Группировки типа "по неделям и итог по каждому месяцу"?
И в каком именно SQL? Поцгрес подойдёт?
http://www.postgresql.org/docs/devel/static/functions-datetime.html
Возможно, из приведённой вами гипотетической выборки из базы и можно догадаться в точности, что именно вам нужно, но я этого делать не буду.

Date: 2013-04-29 03:56 pm (UTC)
From: [identity profile] bydl0coder.livejournal.com
Циферки те, да не там.

Date: 2013-04-29 11:15 am (UTC)
From: [identity profile] metaclass.livejournal.com
Можно. Что-то вроде
select * from
(select month,1 k, item, sum(amount) from Items
group by 1,2,3
union
select month,2 k, '', sum(amount) from items
group by 1,2,3
) order by month,k

ну или помудрить с CTE, чтобы два раза не вставать к основной таблице.

Date: 2013-04-29 04:24 pm (UTC)
From: [identity profile] bydl0coder.livejournal.com
и так двенадцать раз, ага.

Date: 2013-04-29 06:22 pm (UTC)
From: [identity profile] metaclass.livejournal.com
см, ссылку на fiddle

Date: 2013-04-29 07:07 pm (UTC)
From: [identity profile] bydl0coder.livejournal.com
Вот я лох. Но проблемы видны, в общем.

Date: 2013-04-29 07:13 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Да, если требования чуть сложнее - sql превращается в тыкву.
В итоге, один запрос с аггрегацией я делаю на SQL а всю постобработку типа "показать итоги до, после, сверху, сбоку, спереди и сзади" - на Clojure.

Date: 2013-04-29 09:48 pm (UTC)
From: [identity profile] bydl0coder.livejournal.com
Я тоже так делаю, но в сишарпе получаются ебанутейшие типы, да и в рубях тоже не особо приятно map'ы разбирать. В Clojure какой-то крутой синстаксис для мапов, насколько я понимаю.

Date: 2013-04-29 03:55 pm (UTC)
From: [identity profile] anonim-legion.livejournal.com
Дайте исходные данные, я вам запрос напишу.

Date: 2013-04-29 04:22 pm (UTC)
From: [identity profile] bydl0coder.livejournal.com
http://sqlfiddle.com/#!1/e390c/1

Написанный там запрос делает не то, что надо. Надо, чтобы итог за месяц был под итогом по товарам.

Date: 2013-04-29 07:14 am (UTC)
From: [identity profile] metaclass.livejournal.com
Размеры индексов меня немного печалят, если там строка вместо числа. И сравнение строк тоже занятие небыстрое.

Date: 2013-04-29 07:24 am (UTC)
From: [identity profile] plumqqz.livejournal.com
Ну, есть такое. Но заводить еще одну колонку и строить на нее дополнительный индекс...
Относительно сравнения строк - не все так плохо.

Date: 2013-04-29 09:36 am (UTC)
From: [identity profile] bydl0coder.livejournal.com
Так как это айдишник, то range операций не будет и можно хэш-индекс иметь.

Date: 2013-04-29 10:03 am (UTC)
From: [identity profile] plumqqz.livejournal.com
Ну хеш, это, ясное дело, чудесное средство и волшебная палочка. От него сразу становится как-то необыкновенно хорошо.
Непонятно, правда, какие именно догматы мешают считать хеш от строки, раз уж в нем кроются такие радости.
А вот в "range операциях"..., ах, да бог с ними.

Date: 2013-04-29 10:27 am (UTC)
From: [identity profile] bydl0coder.livejournal.com
Ну не я ж волновался за размеры индексов.

Date: 2013-04-29 10:30 am (UTC)
From: [identity profile] plumqqz.livejournal.com
А причем тут размеры индексов?

Date: 2013-04-29 10:42 am (UTC)
From: [identity profile] bydl0coder.livejournal.com
А они не меньше деревьев получаются? Хотя можно и без извратов с типами индексов, а в дерево положить свой хэш, если уж памяти мало.

Date: 2013-04-29 10:45 am (UTC)
From: [identity profile] plumqqz.livejournal.com
Да вообще-то не особо, если даже и меньше.

Date: 2013-04-29 08:08 am (UTC)
From: [identity profile] veter-r-r.livejournal.com
Только джаваскрипт! Только хардкор!

Date: 2013-04-29 08:09 am (UTC)
From: [identity profile] berezovsky.livejournal.com
Исполнитель "Чертёжник".

Date: 2013-04-29 08:10 am (UTC)
From: [identity profile] veter-r-r.livejournal.com
Это для тех, кто не осилил Кенгуренка?

Date: 2013-04-29 08:23 am (UTC)
From: [identity profile] berezovsky.livejournal.com
А чё за кенгурятник?

Date: 2013-04-29 10:35 am (UTC)
From: [identity profile] berezovsky.livejournal.com
Какая прелесть. :-))

Date: 2013-04-29 05:39 pm (UTC)
From: [identity profile] ext-1741091.livejournal.com (from livejournal.com)
Отлишная, между прочим, весчъ! Там еще пылесосик был - стековая машина.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 8th, 2025 05:20 am
Powered by Dreamwidth Studios