Вот мое решение с использованием LEAD
SELECT ROUND(4.0 * SUM(bal * days / 36500), 2) as Interest
FROM (
SELECT bal, NVL(LEAD(trx_date) OVER (ORDER BY trx_date) - trx_date, 0) days
FROM transaction)
. Это дает начисленные проценты 62,79 для выборочных данных. Ниже приведены отдельные суммы процентов
+----+--------+-------+
|DAYS| BAL| INT|
+----+--------+-------+
| 4| 0| 0|
| 3| 7500| 2.47|
| 7| 5000| 3.84|
| 10| 15000| 16.44|
| 5| 6000| 3.29|
| 5| 5000| 2.74|
| 5| 12100| 6.63|
| 10| 10000| 10.96|
| 5| 30000| 16.44|
| 0| 15000| 0|
+----+--------+-------+
Используйте регулярное выражение.
Ответ для комментария от OP: Я знаю, что это не полезно. Я говорю Вам корректный способ решить проблему, поскольку Вы заявили, что это должно использовать регулярное выражение.
Можно использовать BeautifulSoup.
def extractlinks(html):
soup = BeautifulSoup(html)
anchors = soup.findAll('a')
links = []
for a in anchors:
links.append(a['href'])
return links
Примечание, что решение с regexes быстрее, хотя не будет так же точно.
если Вы знаете, что существует URL после пространства в строке, можно сделать что-то вроде этого:
с является строкой containg url
>>> t = s[s.find("http://"):]
>>> t = t[:t.find(" ")]
иначе, необходимо проверить, находят ли возвраты-1 или нет.
Посмотрите на подход Django здесь: django.utils .urlize ()
. Регулярные выражения слишком ограничены для работы, и вам придется использовать эвристику, чтобы получить в основном правильные результаты.